我目前有一个母版页,其中有一个下拉菜单,根据菜单选项显示不同的用户控件。
在User控件内部我正在尝试添加一个提交按钮,使用“_Click()”事件处理程序处理用户控件中输入的表单。我的用户控件aspx如下所示:
<asp:Button ID="configBttn" runat="server" OnClick="configBttn_Click" AutoEventWireUp="true" />
然后我在codebehind中有以下内容:
protected void Page_Load(object sender, EventArgs e)
{
}
protected void configBttn_Click(object sender, EventArgs e)
{
Response.Write("Hello world");
}
我甚至尝试添加一个事件处理程序:
configBttn.Click += new EventHandler(configBttn_Click)
然而,这仍然不允许触发按钮。有任何想法吗?
我在div容器内的codebehind中添加了用户控件:
divContainer.Controls.Add(pPage.LoadControl("~/Controls/Control.ascx"));
答案 0 :(得分:1)
您在页面生命周期中在哪里创建UserControl?
我怀疑它需要在其容器页面的Init方法中创建。
此外,它们不应该包含在!IsPostback块中,否则当页面回发时,控件事件处理程序未映射,因此没有任何内容可以捕获click事件。
答案 1 :(得分:0)
没有看到添加用户控件的代码,我猜它没有保存为页面视图状态的一部分。这意味着当您单击用户控件内的按钮时,整个页面将被刷新,并且未创建用户控件或创建其不同的实例。