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>

转载于:https://www.cnblogs.com/xbding/archive/2012/10/26/2741453.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值