正在分配和取消分配按钮上的事件
本文关键字:分配 按钮 事件 取消 | 更新日期: 2023-09-27 17:57:37
我正忙于为设计器中创建的现有按钮分配新事件。
现在是运行时之前创建的按钮,它位于modalpopupextender5-中
<asp:Button runat="server" ID="btnClose" Text="Close" OnClick="btnClose_Click" />
这是代码指针-
protected void btnAddAccount_Click(object sender, EventArgs e)
{
btnClose.Click -= new EventHandler(btnClose_Click);
btnClose.Click += new EventHandler(btnCancel_Click);
ModalPopupExtender5.Show();
}
protected void btnCancel_Click(object sender, EventArgs e)
{
ModalPopupExtender11.Hide();
}
protected void btnClose_Click(object sender, EventArgs e)
{
ModalPopupExtender5.Hide();
}
因此,开头的按钮连接了事件btnClose_Click。但我想将其更改为btnCancel_Click
但它不会执行btnCancel_Click。它执行原始btnClose_Click
有什么想法吗?
这与页面生命周期有关吗?
--编辑--我应该让你知道btAdddAccount_Click确实被执行了。
基本上我不想创建相同的modalpopupextender,我想使用现有的,但根据用户的选择,将决定应该调用哪个事件处理程序,在这种情况下,btnAccount_Click已经选择了要分配给按钮的btnCancel_Click。
ASP.NET没有为服务器端按钮的任何位置分配Click事件。这些按钮被呈现为普通的提交按钮,后面的内部代码检查提交的值,然后在此基础上找到"单击"的按钮并调用正确的处理程序。
这意味着你目前的逻辑正在走向死胡同。
与其干扰事件,不如让btnClose_Click
作为处理程序,并在其中检查当前活动/可见的弹出窗口并将其隐藏。
我不太确定您到底在问什么,但您可以将Handles
添加到事件中,从而控制按钮上的事件。类似于:
protected void btnCancel_Click(object sender, EventArgs e) Handles btnCancel.Click, btnClose.Click
{
//do stuff
}