2013-07-08 3 views
1

Я пытаюсь отобразить всплывающее окно подтверждения перед вызовом response.redirect. Когда я использую код ниже, я никогда не получаю всплывающее окно, которое он просто перенаправляет. Любая идея, что мне не хватает?Поле сообщения не работает со страничным перенаправлением

Try 
     Dim msg As String = "Hello!" 
     Dim script As String = "alert('" & msg & "');" 
     script += "window.location.href ='frmSummary.aspx'" 
     'Navigate to Page 2 
     'Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "SCRIPT", script,true); 
     System.Web.UI.ScriptManager.RegisterClientScriptBlock(Me, Me.[GetType](), "Test",  script, True) 

    Catch ex As Exception 

    End Try 



    Response.Redirect("~/frmMain.aspx") 
+1

Ваш код VB, исполняемый на сервере. Переадресация происходит * до того, как любой код будет отправлен клиенту. –

ответ

1

Я собираюсь догадку, что это режиссерский к frmMain.aspx ..?

Вы пытаетесь сделать вашу Javascript на клиенте, хотя до того, как страница визуализируется вы выполняете редирект с этой линией - Response.Redirect("~/frmMain.aspx")

Постарайся комментируя, что перенаправление, и повторите попытку.

+0

Да, это работает, когда я комментирую перенаправление. Есть ли способ, которым я могу перенаправить его после того, как пользователь нажимает ok в окне сообщений? – user1342164

+0

Это не перенаправление на «frmSummary.aspx» после нажатия? – Darren

+0

Мне нужно это redirec to frmMain после ok щелчка – user1342164

2

Поместите window.location.href логику в JavaScript confirm вместо alert вызова, например:

if (confirm("Do you want to do something?")) { 
    // User clicked OK, so redirect 
    window.location.href = 'frmSummary.aspx'; 
} 
+0

Как я могу уловить щелчок OK в javascript? Я никогда не делал этого раньше. Спасибо. – user1342164

+0

Извините, я понял, что вам нужно использовать 'confirm', а не' alert'. Я обновил свой ответ. 'alert' не возвращает значение, но' confirm' делает. –

+0

Спасибо! Помогли нам много – user1342164

1

Вы можете создать свой собственный всплывающий диалог с помощью HTML/CSS и немного в JS. Другой способ - создать функцию js, которая обрабатывает диалог подтверждения ... http://www.w3schools.com/js/js_popup.asp

2

В вашем текущем коде сервер перенаправляется на frmMain.aspx перед возвратом на клиентскую сторону.

Если вы хотите отобразить что-нибудь для пользователя с помощью OK/кнопку Отмена, вы хотите что-то вроде этого -

protected void Button1_Click(object sender, EventArgs e) 
{ 
    try 
    { 
     string script = "if(confirm('Are you sure ...?')) {window.location.href ='frmSummary.aspx'; }"; 
     ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "Test", script, true); 
    } 
    catch (Exception ex) 
    { 
    } 
}