程序流不会进入事件处理程序

时间:2013-11-25 05:52:17

标签: asp.net event-handling

我有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;
}

这有什么问题?

1 个答案:

答案 0 :(得分:0)

编辑:需要在每次回发期间重新创建用户控件 - 否则事件将丢失。

我不确定你在哪里调用InitEvents方法,但这需要在每次回发时调用 - 所以将它设置为OnInit是一个不错的选择。

protected override void OnInit(EventArgs e)
{
     base.OnInit(e); 
     InitEvents();
}