2011-12-20 2 views
7

Я использую vs 2010. Мне нужно отобразить сообщение пользователю и перенаправить страницу.Как получить предупреждающее сообщение перед перенаправлением страницы

Я использую нижнюю строку.

ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", "<script> alert('User details saved sucessfully');window.open('frmDisplayUsers.aspx');</script>", true); 

Но я не получил предупреждающее сообщение, и страница была напрямую перенаправлена.

Как получить оповещение?

ответ

23

Ваш код открывает окно, но вы просите редиректа, ниже приведен пример редиректа:

ScriptManager.RegisterStartupScript(this, this.GetType(), 
"alert", 
"alert('User details saved sucessfully');window.location ='frmDisplayUsers.aspx';", 
true); 
1

Вам нужно написать:

ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", " alert('User details saved sucessfully'); window.open('frmDisplayUsers.aspx');", true); 

Пожалуйста, обратите внимание, что я удалил тег сценария в качестве последнего параметра верно означает, что вы не должны использовать тег сценария.

Этот код работал для меня. Если у вас есть какие-либо проблемы, дайте мне знать. Кроме того, вы можете использовать setTimeout, чтобы задержать открытое окно, что может быть не очень плохой выбор.

0

Самый лучший способ, если это возможно, чтобы поместить код в OnClientClick.

<asp:Button OnClientClick=" alert('blah?');" runat="server" /> 

Проблема с вводом его в startupscript, что startupscript запускается на постбэка, а не в режиме реального времени. Перенаправление произойдет до обратной передачи. (возможно)

Другим решением, конечно же, является переадресация в код startupscript.

Страница будет отправлена ​​обратно, сценарий будет запущен, а затем будет перенаправлен.

1

Если вы хотите поместить в .cs файл, просто попробуйте это:

var page = HttpContext.Current.CurrentHandler as Page; 
      ScriptManager.RegisterStartupScript(page, page.GetType(), "alert", "alert('" + msg +"');window.location ='"+ aspx +"';", true); 
0

Если вы работаете с UpdatePanel, то Вы должны использовать это: Это работа с панелью обновления.

var message = new System.Web.Script.Serialization.JavaScriptSerializer().Serialize("Bill No. : " + BillNo + " successfully generated."); 
      var script = string.Format("alert({0});window.location ='ChhallanPrint.aspx';", message); 
      ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "", script, true); 
-1

Ваш Просить страницы перенаправления, ниже приведен пример редиректа:

string page = "Login.aspx"; 
     string myStringVariable = "Password Update!"; 
     ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('" + myStringVariable + "');Response.Redirect('"+ page +"');", true); 
0

Перенаправление на страницу входа в систему после того, как пароль обновляется предупредительное сообщение

Dim MyScript As String = "alert('Password Updated Successfully!. Please Login Again!'); window.location = '../Login.aspx';" 

И если ваши намерения чтобы ваша страница была на верхнем уровне, потому что ваша страница может находиться внутри рамки, которая сама находится внутри рамки.

Dim MyScript As String = "alert('Password Updated Successfully!. Please Login Again!');window.top.location='../Logout.aspx';" 
      ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), "MyScript", MyScript, True) 
Смежные вопросы