以前,我有一个默认的aspx页面,其中包含一个主用户控件。
主用户控件是用于动态加载菜单项的用户。例如联系人和销售订单。
当用户点击联系人时,联系人的内容将从其他子用户控件加载。
默认的aspx前端
Here is the aspx page which include the main user control
<div class="rightColumnModule2">
<asp:Panel ID="pnUserControl" runat="server">
<uc2:SubMenuItem ID="MainMenuItem1" runat="server"/>
</asp:Panel>
</div>
子菜单后端代码
//dynamic load other content of user control
//I am using placeholder to load from other user control
private void loadUserControl()
{
if (this.hfSelectSubItemURL.Value != "")
{
UserControl ucSimpleControl = LoadControl(this.hfSelectSubItemURL.Value) as UserControl;
PlaceHolder1.Controls.Add(ucSimpleControl);
}
}
ContactPersonList.ascx前端
div class="rightColumnModule2">
<div class="rightColumnModule2TitleContainer">
<table class="rightColumnModule2Table">
<tr>
<td>
<div class="rightColumnModule2Title">
Contact Person</div>
</td>
</tr>
<tr>
<td>
<cc1:cusAcesslevelBtn ID="btncAdd" runat="server" aclType="Add"
CssClass="inputButonS" onclick="btncAdd_Click" Text="Add" />
</td>
</tr>
</table>
</div>
<!-- end of rightColumnModule2TitleContainer -->
<div id="Div2" class="rightColumnModule2Content" runat="server">
<div class="rightColumnModule2ContentSub">
<div class="rightColumnModule2TitleSub">
System Information
</div>
<table class="table100">
<tr>
<td class="tableVT" style="width: 49%">
<table class="table100">
<tr>
<td class="rightColumnModule2DetailLabel" style="width: 30%">
Create by </td><td class="rightColumnModule2DetailColon" style="width: 5%">
: </td><td class="rightColumnModule2DetailValue" style="width: 65%">
<asp:LinkButton ID="LinkButton1" runat="server"
></asp:LinkButton> <asp:Label
ID="Label3" runat="server"></asp:Label></td></tr></table></td><td class="gapHori1" style="width: 2%">
</td>
<td class="tableVT" style="width: 49%">
<table class="table100">
<tr>
<td class="rightColumnModule2DetailLabel" style="width: 30%">
Modify By </td><td class="rightColumnModule2DetailColon" style="width: 5%">
: </td><td class="rightColumnModule2DetailValue" style="width: 65%">
<asp:LinkButton ID="LinkButton2" runat="server"></asp:LinkButton> <asp:Label
ID="Label4" runat="server"></asp:Label></td></tr></table></td></tr></table>
</div>
</div>
</div> <!-- end of rightColumnModule2Content -->
如何在我的默认aspx页面中调用来自ContactPersonList.ascx的Add按钮?请给我一个解决方案。感谢
答案 0 :(得分:0)
你可以有两种方法:
使用 FindControl 属性:
Button btn1 =UserControlID.FindControl("btn1") as Button;
if(btn1 != null)
{
//your stuff with button
}
或强>
您可以直接调用UserControl按钮的Click事件:
UserControl页面:
<asp:Button ID="btnClick" runat="server" Text="Button1" onclick="btn_Click" />
代码背后:
public event EventHandler ButtonClick;
protected void btn_Click(object sender, EventArgs e)
{
ButtonClick(sender, e);
}
Aspx页面:
<UC1:UC1 ID="UserControl1" runat="server" />
代码背后:
protected void Page_Load(object sender, EventArgs e)
{
UserControl1.ButtonClick += new EventHandler(UserControl1_ButtonClick);
}
protected void UserControl1_ButtonClick(object sender, EventArgs e)
{
Response.Write("this is usercontrol button event.");
}