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>

posted @   丁焕轩  阅读(1139)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示