在项目中经常把一些经常使用的代码做成用户控件以提高代码的可重用性, 一个经常遇到的就是在页面中调用用户控件中的服务器控件的事件,下面给出简单的代码示列。
我们在一个用户控件(MaterialReportControl.ascx)中包含一个DropDownList控件(DdlSpecies),然后在页面(MaterialReport.aspx)中调用DropDownList的SelectedIndexChanged方法为例:
1.在MaterialReportControl.ascx声明的一个DropDownList控件
View Code
<asp:DropDownList ID="Species" runat="server" Width="90%" AutoPostBack="true">
</asp:DropDownList>
2.在MaterialReportControl.ascx的后台中代码如下:
View Code
/// <summary>
/// 返回用户控件中Species(DropDownList)属性
/// </summary>
public DropDownList Ddl_Species_Control
{
get
{
return Species;
}
}
3.MaterialReport.aspx前台注册MaterialReportControl.ascx
View Code
<%@ Register Src="~/Controls/Report/MaterialReportControl.ascx" TagName="Search" TagPrefix="uc1" %>
4.前台调用。此处说明一下:Search1_Search为后台一个查询方法
View Code
<uc1:Search ID="Search1" runat="server" OnSearch="Search1_Search" />
5.MaterialReport.aspx后台代码:
View Code
/// <summary>
/// 页面初始化时绑定事件
/// </summary>
protected void Page_Load(object sender, EventArgs e)
{
this.Search1.Ddl_Species_Control.SelectedIndexChanged += new EventHandler(InitTableBySpecies_UserControl_Clicked);
}
/// <summary>
/// 要绑定的方法
/// </summary>
private void InitTableBySpecies_UserControl_Clicked(object sender, System.EventArgs e)
{
}
OK!