zoukankan      html  css  js  c++  java
  • showModalDialog 刷新本页面,不重新发送信息,则无法刷新网页,Page_PreRender

    问题描述:

          showModalDialog 关闭模式窗体后,重新绑定gridview,如果用location.reload()方法来刷新页面。会弹出“不重新发送信息,则无法刷新网页”对话框。aspx页面此时在服务端内存里已经存在, 因此必定是 IsPostback 的。原因是页面已经通过查询按钮或分页按钮提交过了,而且希望查看文章后保持原来的页面的一些状态,如当前页码等。loation.href=loation.href  gridview数据不发生变化,原因是loation.href还等于了原来的页面,如果把当前页面重写一遍,且加个随机数给loation.href,那么就会发生变化。

    问题分析:

         .cs文件中对于控件数据的绑定都是在按钮的事件中完成的,这样的话我只用js的window.document.forms(0).submit()提交的话是不会重新绑定数据的。故我们可以把数据绑定的代码放在页面的事件中,由于数据的绑定需要按钮事件设置的一些初始值为参数。故不可以放在Page_load事件中(控件事件所处的生命周期在Page_load后),所以最后选择吧"数据绑定"方法放在了Page_PreRender事件中。

          具体代码:

     string url = "showModalDialog("xxx.aspx?idd=" + idd + "','','dialogWidth=800px;dialogHeight=600px;center:yes;status:no;help:no;scroll:yes');window.document.forms(0).submit();";

     protected void Page_PreRender(object sender, EventArgs e)
        {
            数据绑定方法;
        }

    Page_Prerender介绍

          OnPreReader事件是在页面已经执行完所有后台代码,并且在生成标准HTML代码前,将要呈现给Page类的时候,此事件发生。

    它是asp.net页面的OnPreRender事件的处理程序。此事件是定义在Control类中的,因为Page类(aspx页面的基类)继承的是System.Web.UI.WebControl类,而WebControl类继承的是所有控件的基类Control,此事件是定义在Control中的。

    window.document.forms(0)说明:

         指当前html文档页中的第一个表单,也就是第一个 <form> </form>

  • 相关阅读:
    MUI-页面传参数
    Spring-boot:多模块打包
    PythonDay11
    PythonDay10
    PythonDay09
    PythonDay08
    PythonDay07
    PythonDay06
    PythonDay05
    PythonDay04
  • 原文地址:https://www.cnblogs.com/xbding/p/2741453.html
Copyright © 2011-2022 走看看