2012-03-08 104 views
1

我有一個應用程序,我將顯示Modal Popup成功插入,更新和刪除。但執行此操作後,當我移動到下一頁並返回上一頁時,點擊瀏覽器後退按鈕Modal Popup正在顯示,我不想在按下後退按鈕時顯示此彈出窗口。我該如何解決這個問題如何隱藏模式彈出瀏覽器後退按鈕

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (Page.PreviousPage==null) {mpeModalPopup.Show(); } 
    if (Session["Tasks"] == null) 
    { 
     Server.Transfer("login.aspx"); 
    } 

    else 
    { 
     string strTasks = Session["Tasks"].ToString(); 
     if (strTasks.Contains("205")) 
     { 


      if (!IsPostBack) 
      { 
       mpeModalPopUp.Hide(); 
       funPageLoadData(); 
       CheckPopup(); 
       Session["url"] = System.Web.HttpContext.Current.Request.Url.AbsolutePath; 
      } 

     } 
     else 
     { 
      ReturnBack(); 
     } 

    } 

} 

回答

2

對於打開彈出式(回發後)asp.net更改html或插入JavaScript函數來顯示模式彈出。

我知道的唯一解決方案是當您單擊按鈕時觸發ajax回發(使用UpdatePanel)而不是完整的回發。這樣,彈出窗口就會通過ajax調用加載,並且稍後您按下後退按鈕時不會顯示。

+0

這是我的處理是正確的它如果'{ mpeModalPopUp.Hide();}'(的IsPostBack!) – Dotnet 2012-03-09 09:02:10

+0

的問題是,後面的代碼將不能運行時後退按鈕被點擊,頁面從緩存中加載。如果最後一頁加載(回發或不)有一個彈出窗口,它會再次顯示該彈出窗口。 – Willem 2012-03-09 15:45:08

3

您似乎沒有處理Page.IsPostBack您的page_load事件的布爾屬性。

if (Page.PreviousPage==null) {mpeModalPopup.Show(); }

+0

如果在提交查詢後,頁面進行回發,則必須處理** Page.IsPostback **布爾屬性。有關詳細信息[Page.IsPostBack MSDN頁](http://msdn.microsoft.com/en-us/library/system.web.ui.page.ispostback.aspx) – Uday0119 2012-03-09 04:56:52

+0

這是我處理的是否正確'if (!IsPostBack) { mpeModalPopUp.Hide();'} – Dotnet 2012-03-09 09:00:08

+0

嘗試使用像這樣 'if(IsPostBack){mpeModalPopUp.Show(); }'
你爲什麼要處理'不回發'。真正的事情是,你只想在回發中顯示彈出窗口,所以處理另一個回合只顯示少一點的scenerio。而且,如果你分析你的執行樹,'不回發'scenerios不僅僅是'回發'scenerios。 – Uday0119 2012-03-09 11:48:59