C#如何手动触发控件的事件? 100
我有两个关联DropDownListA显示省,B显示A省的地区。A的SelectIndexChangeed事件会重新填充B内的地区名称和编码那么我在一个自定义的Page类...
我有两个关联DropDownList A显示省,B显示A省的地区。
A的SelectIndexChangeed事件会重新填充B内的地区名称和编码
那么我在一个自定义的Page类叫做MyPage内有一个函数
public class MyPage: System.Web.UI.Page
{
AssignDq2Ddl(DropDownList A,DropDownList B , string dqcode)
{
// A B都是传染的DropDownList控件,dqcode是一个12位地区编码,前6位表示省
//第一步,根据dqcode.substring(0,6)选择省,A.SelectedValue=dqcode.substring(0,6);
//第二步,根据当前省,重新填充B,等于A的SelectIndexChanged事件处理过程。
//第三步,B.SelectedValue=dqcode;
}
}
public partial class Index:MyPage
{
protected void Page_Load(object sender,EventArgs e)
{
AssignDq2Ddl(ddl1,ddl2,"111111000000");
}
}
因为这是工具函数是写在父类中的,所有不知道第二步A的SelectIndexChanged事件处理函数是什么?只有A.SelectIndexChanged的委托,那么我怎么使用委托来调用A.SelectedChanged的处理函数呢?
父类中没有A和B这两个控件,所以没有办法添加对应的出来函数,而且不同的页面DropDownList的填充内容也不确定,因此需要调用对应的SelectIndexChanged
出来函数。而不能在父类中给定出来函数 展开
A的SelectIndexChangeed事件会重新填充B内的地区名称和编码
那么我在一个自定义的Page类叫做MyPage内有一个函数
public class MyPage: System.Web.UI.Page
{
AssignDq2Ddl(DropDownList A,DropDownList B , string dqcode)
{
// A B都是传染的DropDownList控件,dqcode是一个12位地区编码,前6位表示省
//第一步,根据dqcode.substring(0,6)选择省,A.SelectedValue=dqcode.substring(0,6);
//第二步,根据当前省,重新填充B,等于A的SelectIndexChanged事件处理过程。
//第三步,B.SelectedValue=dqcode;
}
}
public partial class Index:MyPage
{
protected void Page_Load(object sender,EventArgs e)
{
AssignDq2Ddl(ddl1,ddl2,"111111000000");
}
}
因为这是工具函数是写在父类中的,所有不知道第二步A的SelectIndexChanged事件处理函数是什么?只有A.SelectIndexChanged的委托,那么我怎么使用委托来调用A.SelectedChanged的处理函数呢?
父类中没有A和B这两个控件,所以没有办法添加对应的出来函数,而且不同的页面DropDownList的填充内容也不确定,因此需要调用对应的SelectIndexChanged
出来函数。而不能在父类中给定出来函数 展开
2个回答
展开全部
A.SelectIndexChanged是个事件,决定了只能在A的内部调用它,即只能在A中这样写SelectIndexChanged(x,x),外部无法调用,外部只能注册或取消注册,即+=/-=,因为事件是天然的private成员,只有事件访问器add_XXX()和remove_XXX()(也就是+=/-=)才是公开的(是否公开由申明事件的访问修饰符决定)。
回到正题,你只能直接调用A.SelectIndexChanged的处理函数。
其实对于你的问题,何不在MyPage中注册A.SelectIndexChanged+=Fun, 然后实现Fun,然后在AssignDq2Ddl中调用Fun呢?也就是我说的直接调用处理函数,而不是调用事件。
回到正题,你只能直接调用A.SelectIndexChanged的处理函数。
其实对于你的问题,何不在MyPage中注册A.SelectIndexChanged+=Fun, 然后实现Fun,然后在AssignDq2Ddl中调用Fun呢?也就是我说的直接调用处理函数,而不是调用事件。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询