我有2个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;
}
这有什么问题?
答案 0 :(得分:0)
编辑:需要在每次回发期间重新创建用户控件 - 否则事件将丢失。
我不确定你在哪里调用InitEvents
方法,但这需要在每次回发时调用 - 所以将它设置为OnInit是一个不错的选择。
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
InitEvents();
}