繁体   English   中英

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

[英]server side click event doesn't fire on LinkButton when PostBackUrl property has been set to another page

我在使用VS 2010的网页上放置了一个名为“注销”的链接按钮控件。当用户按下“注销”链接按钮时,我希望系统做两件事。 首先是触发服务器端单击事件以执行某些操作,例如清除所有会话变量等。其次是将用户重定向到另一个页面,例如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属性和服务器端click事件,但是似乎它们之间的配合不佳〜

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

相反,您应该在sesion.abandon后单击按钮时使用某种重定向。

您可以检查是否有事件LinkButton1_Click订阅了LinkButton1OnClick吗?

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

1.) SessionStateModule.End事件

2.) 在Global.asax中使用会话

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM