2012-03-08 5 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 или вставляет яваскрипт функции, чтобы показать модальное всплывающее окно.

Единственное решение, о котором я знаю, запускает обратную передачу ajax (с UpdatePanel) вместо полной обратной передачи при нажатии кнопки (ов). Таким образом, всплывающее окно загружается вызовом ajax и не будет отображаться, когда вы нажмете на него в дальнейшем.

+0

Это то, что я обращался это правильно 'если { mpeModalPopUp.Hide(); '} (IsPostBack!) – Dotnet

+0

Проблема в том, что ваш код позади не будет работать даже при нажатии кнопки назад щелчок, страница загружается из кеша. Если на последней загрузке страницы (обратной или нет) появилось всплывающее окно, оно снова отобразит это всплывающее окно. – Willem

3

Вы не кажется, обработали Page.IsPostBack булево свойство на вашем page_load случае.

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

+0

Если после отправки вашего запроса страница делает обратную передачу, вам необходимо обработать ** Page.IsPostback ** свойство boolean. Для получения дополнительной информации [Страница страницы .IsPostBack MSDN] (http://msdn.microsoft.com/en-us/library/system.web.ui.page.ispostback.aspx) – Uday0119

+0

Это то, что я обработал, это правильно, если (! IsPostBack) { mpeModalPopUp.Hide(); '} – Dotnet

+0

попробуйте использовать вот так: ' if (IsPostBack) {mpeModalPopUp.Show(); } '
, почему вы обращаетесь за« не postback ». реальная вещь заключается в том, что вы хотите показывать всплывающее окно только по обратной передаче, поэтому обработка в противоположном направлении показывает немного меньше scenerio. кроме того, сценарии «не postback» - это больше, чем «postback» scenerios, если вы анализируете свое дерево выполнения. – Uday0119

Смежные вопросы