能否给用户控件添加一个事件?高手请进!!! 我定义的用户控件,该控件中有一个TextBox和一个dropdownlist。我现在就想,在web form中引用该用户控件后,选中用户控件中的dropdownlist的值后,绑定web form中的DataGrid控件,并从数据库中提取数据出来。能否给用户控件添加一个事件,并让dropdownlist的SelectedIndexChanged事件去执行? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public event System.EventHandler SelectedChanged ;void OnSelectedChanged(System.EventArgs e){ if(SelectedChanged != null)SelectedChanged(this,e);}DropDownList1_SelectedIndexChanged_1(object sender, System.EventArgs e){ OnSelectedChanged(e);} 定义:public event EventHandler Change;触发:if(Change!=null){ Change(sender,e);} UserControl.ascx.cs中的处理: 1. 定义public的事件委托,如ClickEventHandler; 2. 在UserControl类中声明事件,如Click; 3. 在UserControl类中定义引发事件的方法,如OnClick()方法; 4. 在UserControl类的相关方法中调用引发事件的方法,如在Button_Click()中调用OnClick()。 核心代码示意如下: public delegate void ClickEventHandler(object sender, EventArgs e); public class MyUserControl : System.Web.UI.UserControl { protected System.Web.UI.WebControls.Button AButton; public event ClickEventHandler Click; protected void OnClick(EventArgs e) { if (Click!=null) Click(this, e); } private void AButton_Click(object sender, System.EventArgs e) { this.OnClick(e); } } 包含UserControl的页面cs文件中的处理: 1. InitializeComponent()中增加事件处理程序,采用FindControl方法找到UserControl; 2. 定义事件处理方法,在该方法中处理UserControl的事件,如UserControl_Clicked()。 核心代码示意如下: private void InitializeComponent() { this.Load += new System.EventHandler(this.Page_Load); MyUserControl uc = this.FindControl("myUserControlID") as MyUserControl; uc.Click += new ClickEventHandler(this.UserControl_Clicked); } private void UserControl_Clicked(object sender, System.EventArgs e) { // UserControl_Clicked event hanlder } 定义:public event EventHandler Change;触发:if(Change!=null){ Change(sender,e);} 关于ASP.NET插入access数据库的问题。急,在线等! 动态修改DataTable的数据 datalist绑定滚动图片,关于浏览器的兼容的问题。 treeview 导航问题 3层结构问题 itemTemplate中数据绑定的问题 信息分类索引的实现? Html主页被挂马 求:随机抽取50行出数据库 !!!!!!!!!!!!如何给一个gridview添加一个鼠标点击事件!!!!!!!!!!!急求 目前一个棘手小问题,大家来看看,指点一下! 高分求货币格式化的问题及数据库问题,在线等,解决立马结仇
{
if(SelectedChanged != null)SelectedChanged(this,e);
}DropDownList1_SelectedIndexChanged_1(object sender, System.EventArgs e)
{
OnSelectedChanged(e);
}
public event EventHandler Change;触发:
if(Change!=null)
{
Change(sender,e);
}
1. 定义public的事件委托,如ClickEventHandler;
2. 在UserControl类中声明事件,如Click;
3. 在UserControl类中定义引发事件的方法,如OnClick()方法;
4. 在UserControl类的相关方法中调用引发事件的方法,如在Button_Click()中调用OnClick()。 核心代码示意如下:
public delegate void ClickEventHandler(object sender, EventArgs e);
public class MyUserControl : System.Web.UI.UserControl
{
protected System.Web.UI.WebControls.Button AButton;
public event ClickEventHandler Click;
protected void OnClick(EventArgs e)
{
if (Click!=null) Click(this, e);
}
private void AButton_Click(object sender, System.EventArgs e)
{
this.OnClick(e);
}
} 包含UserControl的页面cs文件中的处理:
1. InitializeComponent()中增加事件处理程序,采用FindControl方法找到UserControl;
2. 定义事件处理方法,在该方法中处理UserControl的事件,如UserControl_Clicked()。
核心代码示意如下:
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
MyUserControl uc = this.FindControl("myUserControlID") as MyUserControl;
uc.Click += new ClickEventHandler(this.UserControl_Clicked);
}
private void UserControl_Clicked(object sender, System.EventArgs e)
{
// UserControl_Clicked event hanlder
}
public event EventHandler Change;触发:
if(Change!=null)
{
Change(sender,e);
}