关于从页面中获取用户控件中的其它控件(如DropDownList)事件的方法
在项目中经常把一些经常使用的代码做成用户控件以提高代码的可重用性, 一个经常遇到的就是在页面中调用用户控件中的服务器控件的事件,下面给出简单的代码示列。
我们在一个用户控件(MaterialReportControl.ascx)中包含一个DropDownList控件(DdlSpecies),然后在页面(MaterialReport.aspx)中调用DropDownList的SelectedIndexChanged方法为例:
1.在MaterialReportControl.ascx声明的一个DropDownList控件
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<asp:DropDownList ID="Species" runat="server" Width="90%" AutoPostBack="true">
</asp:DropDownList>
2.在MaterialReportControl.ascx的后台中代码如下:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
/// <summary>
/// 返回用户控件中Species(DropDownList)属性
/// </summary>
public DropDownList Ddl_Species_Control
{
get
{
return Species;
}
}
3.MaterialReport.aspx前台注册MaterialReportControl.ascx
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<%@ Register Src="~/Controls/Report/MaterialReportControl.ascx" TagName="Search" TagPrefix="uc1" %>
4.前台调用。此处说明一下:Search1_Search为后台一个查询方法
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<uc1:Search ID="Search1" runat="server" OnSearch="Search1_Search" />
5.MaterialReport.aspx后台代码:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
/// <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!