2011-12-20 28 views
7

Tôi đang sử dụng so với 2010. Tôi cần hiển thị thông báo cho người dùng và chuyển hướng trang.Cách nhận thông báo cảnh báo trước khi chuyển hướng một trang

Tôi sử dụng dòng dưới đây.

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

Nhưng tôi không nhận được thông báo cảnh báo và trang được chuyển hướng trực tiếp.

Làm thế nào để nhận được thông báo cảnh báo?

Trả lời

23

Mã của bạn đang mở cửa sổ nhưng bạn yêu cầu cho một chuyển hướng, dưới đây là một ví dụ về một chuyển hướng:

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

Bạn cần phải viết:

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

Xin lưu ý rằng tôi đã xoá các thẻ script như tham số cuối cùng thật sự có nghĩa là bạn không phải sử dụng các thẻ script.

Mã này đã hoạt động đối với tôi. Nếu bạn có bất kỳ vấn đề cho tôi biết. Ngoài ra, bạn có thể sử dụng setTimeout để trì hoãn mở cửa sổ có thể không phải là một lựa chọn rất xấu.

0

Cách tốt nhất, nếu có thể, là để đưa mã vào OnClientClick.

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

Vấn đề với việc đưa nó vào startupscript là startupscript được chạy trên postback, không phải thời gian thực. Chuyển hướng sẽ xảy ra trước khi đăng lại. (có thể)

Giải pháp khác tất nhiên là đặt chuyển hướng vào mã startupscript.

Trang sẽ đăng lại, tập lệnh sẽ chạy và sau đó nó sẽ chuyển hướng.

1

Nếu bạn muốn đặt trong file .cs, chỉ cần thử này:

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

Nếu bạn đang làm việc với UpdatePanel Sau đó bạn phải sử dụng này: Đó là làm việc với Update Panel.

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

của bạn Yêu cầu cho một trang chuyển hướng, dưới đây là một ví dụ về một chuyển hướng: thông điệp cảnh báo

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

Chuyển hướng để Đăng nhập Trang sau mật khẩu được cập nhật

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

Và nếu ý định của bạn là để tăng tốc độ trang của bạn lên cấp cao nhất, bởi vì trang của bạn có thể nằm trong một khung nằm bên trong khung.

Dim MyScript As String = "alert('Password Updated Successfully!. Please Login Again!');window.top.location='../Logout.aspx';" 
      ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), "MyScript", MyScript, True) 
Các vấn đề liên quan