我有两个ASP.NET应用程序。其中一个有ASCX用户控件,但两者都使用。
当我运行用户控制不是的应用程序时,程序流进入事件处理程序。当我运行用户控制的应用程序时,程序流不会进入事件处理程序。
代码如下:
1) HTML:
<asp:PlaceHolder ID="CashdeskMenuHolder" Runat="server" Visible="False">
<table width="99%" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#E8E8E8">
<tr>
<td width="65" align="center" class="mainMenu" onmouseover=" this.style.background = '#F5F6AF'; " onmouseout=" this.style.background = '#E8E8E8'; ">
<site:secureLink runat="server" ID="Exit" Name="выход" CssClass="MainMenu" Allow="wizard,admin,kassaThermo,kassa,kassaPechat,kassaPechatSpec,kassaPechatExt,kassaExpress,kassaManager,placeManager"/>
</td>
</tr>
</table>
</asp:PlaceHolder>
2) 代码背后:
private void InitEvents()
{
Exit.LinkClick += Exit_Click;
}
void Exit_Click(object sender, EventArgs e)
{
Session["KassaLogOff"] = true;
}
这个怎么了?
编辑:每次回发时都需要重新创建用户控件,否则事件将丢失。
我不确定您在哪里调用InitEvents
方法,但每次回发时都需要调用它,因此将其设置为OnInit是一个不错的选项。
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
InitEvents();
}