当PostBackUrl属性设置为另一个页面时,服务器端单击事件不会在LinkBut​​ton上触发

时间:2013-04-18 03:07:37

标签: c# visual-studio-2010 linkbutton

我在VS 2010的网页上放了一个名为“Logout”的linkbutton控件。 当用户按下“Logout”链接按钮时,我希望系统做两件事。 首先是触发服务器端点击事件来做一些事情,如清除所有会话变量等。 其次是将用户重定向到另一个页面,例如logon.aspx

所以我写了以下代码

protected void Page_Load(object sender, EventArgs e)
{
    if (!this.IsPostBack)
    {
        LinkButton1.PostBackUrl = "LogOn.aspx";
    }
}

protected void LinkButton1_Click(object sender, EventArgs e)
{
    Session.Abandon(); 
    ....
    ....

}

但是当程序运行时,任何用户都会点击链接按钮。从不执行LinkBut​​ton1_Click的代码,因为页面已经重定向到Logon.aspx页面而且从不执行LinkBut​​ton1_Click()

我的问题是为什么LinkBut​​ton1提供PostBackUrl属性和服务器端点击事件,但似乎他们不合作很好〜

2 个答案:

答案 0 :(得分:1)

这是因为通过设置PostBackUrl,您说当单击按钮时,您希望它发布到LogOn.aspx页面而不是回发给自己。由于您要发布到LogOn.aspx,因此您永远不会触发该事件。

相反,您应该在sesion.abandon之后在按钮单击中使用某种类型的重定向。

答案 1 :(得分:0)

您可以查看是否有LinkButton1_Click订阅了LinkButton1 OnClick的活动吗?

然后,对于您在引用ASP.Net时的第二个问题,您可以使用Global.asax处理此问题,每次会话被销毁时,您都会将任何用户重定向到登录页面。请参阅以下参考链接:

1。)SessionStateModule.End Event

2。)Using Session in Global.asax