• 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 }
  • 相关阅读:
    linux系统——机制与策略(三)
    linux系统——机制与策略(二)
    Linux系统——机制策略(一)
    RTSP会话基本流程
    linux编程学习
    编码风格——linux内核开发的coding style
    编程风格——整洁代码的4个提示
    编程风格——五种应该避免的代码注释
    十条不错的编程观点
    代码优化概要
  • 原文地址:https://www.cnblogs.com/xyyt/p/3978631.html
Copyright © 2020-2023  润新知