asp.net 关于Response.Redirect重定向前无法弹出alert对话框的问题

要实现的功能:某项操作后,使用alert()提示框提示"操作成功"之类的提示,然后使用response.Redirect()来进行页面重定向。

出现的问题:运行代码,操作完成后,直接跳转到指定页面,但是并没有弹框提示。

示例代码:

1 protected void gvAttrList_RowDeleting(object sender, GridViewDeleteEventArgs e)
2 {
3     Page.ClientScript.RegisterStartupScript(this.GetType(), "delAtt", "alert('删除成功!')");
4     response.Redirect("default.aspx");
5 }

原因解析:response.Redirect() 方法是服务器端方法,而 alert() 是客户端方法,由于当前单击事件是在服务器端进行的,也就会先执行response.Redirect()方法,而无法判断客户端的 alert 是否已经执行。重定向后进行其他页面加载而不会再执行当前页面的alert()了。

解决方法:在添加的js代码中使用location = 'ProAttribute.aspx'进行页面跳转,由于都是在客户端进行,就会先执行alert(),然后进行页面跳转。

示例代码:

1 protected void gvAttrList_RowDeleting(object sender, GridViewDeleteEventArgs e)
2 {
3      Page.ClientScript.RegisterStartupScript(this.GetType(), "delAtt", "alert('删除成功!'); location = 'ProAttribute.aspx'");
4      response.Redirect("default.aspx");
5 }
原文地址:https://www.cnblogs.com/xyyt/p/3978631.html