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>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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语句:使用策略模式优化代码结构