簡體   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