2013-09-23 127 views
1

我遇到了一個問題,當用戶點擊瀏覽器上的後退按鈕時,事件意外啓動。以下是步驟。ASP.NET瀏覽器後退按鈕事件

  1. 用戶點擊按鈕(火災btnNewSurvey_Click)
  2. 瀏覽器顯示彈出窗口
  3. 用戶關閉彈出並從單獨的鏈接導航到第二頁。
  4. 瀏覽器顯示第二頁
  5. 用戶點擊回
  6. btnNewSurvey_Click再次發射(這是問題)

我想知道爲什麼這正在發生。我已經研究了asp.net的頁面生命週期以及關閉頁面的緩存,但我無法解釋。

讓我知道是否需要任何信息。謝謝!

UPDATE:好像按鈕點擊事件,當用戶從Chrome中點擊後面只能被炒魷魚

ASPX

<asp:Button ID="btnNewSurvey" runat="server" Text="New Survey" OnClick="btnNewSurvey_Click" /> 

aspx.cs

protected void btnNewSurvey_Click(object sender, EventArgs e) 
{ 
    rwScreenList.VisibleOnPageLoad = true; 
    rwScreenList.Visible = true; 
    ListBox lbox = rwScreenList.ContentContainer.FindControl("lboxScreenSelection") as ListBox; 
    ((Label)rwScreenList.ContentContainer.FindControl("lblScreenError")).Text = ""; 
    lbox.DataSource = DatabaseFactory.GetScreensForProject(ProjectId); 
    lbox.DataBind(); 
} 

問題當用戶從另一個頁面返回時會調用此事件。

+0

你可以把你的代碼? –

回答

0

問題似乎是在你的rwScreenList.VisibleOnPageLoad = true;

,因爲我看到這是Telerik的屬性,當你使用這個屬性,你需要經歷一些事情。

你可以這樣做也:

rwScreenList.VisibleOnPageLoad = !Page.IsPostBack; 

請參考下面的討論,這將有助於你從問題解決。

http://www.telerik.com/community/forums/aspnet-ajax/window/radwindow-reopening-after-closing-it-in-every-postback.aspx

+0

問題在於Button Click事件首先被觸發的事實。即使我評論了該事件中的所有內容,它仍然被解僱。 –

+0

你有沒有保持調試頁面加載?它是否在頁面加載? –

+0

當用戶從第二頁返回時,調試器首先觸擊頁面加載。我會認爲它會在那裏結束,但在此之後,它會擊中btnNewSurvey_Click。 –