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

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

Я использую следующую строку.

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

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

Как получить предупреждающее сообщение?

Ответ 1

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

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

Ответ 2

Если вы хотите вставить файл .CS, просто попробуйте следующее:

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

Ответ 3

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

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

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

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

Ответ 4

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

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

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

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

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

Ответ 5

Если вы работаете с 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);

Ответ 6

Перенаправление на страницу входа после предупреждения о подтверждении пароля

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)

Ответ 7

Ваш запрос на страницу перенаправления, приведенный ниже, является примером перенаправления:

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