首页 > 应用开发 > IT综合 > 模式窗口页面不更新的问题
方法一:
window.showModalDialog("xxxx.aspx"+"?temp="+Math.round(Math.random()*10000),window,"dialogWidth:400px;dialogHeight:400px;help:no;unadorned:no;resizable:yes;status:no");
方法二:
一次意外发现第二次打开模式窗口时,不能进入if(!Page.Postback),当时情景是这样的:点击Gatagrid的一行后的update按钮,通过url传两个参数到模式窗口,然后模式窗口在Page_Load 里取参数,读取数据库,初始化页面(在if(!Page.Postback)里)。在模式窗口中修改内容,提交。回到父页面,发现Datagrid的内容已经更新,然后再点update按钮,进入模式窗口,发现模式窗口中显示的内容还是更新之前的内容,查询数据库,数据库记录也已经更新。调试,发现两次url一样(参数一样),第二次打开模式窗口时,if(!Page.Postback)不能进去,恍然大悟,然来是缓存在作怪(因为两次url一样,所以浏览器直接从缓存取)。解决方案: 1.在Page_Load的if(Page.Postback)上面清除缓存。增加如下代码: Response.Cache.SetNoServerCaching(); Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache); Response.Cache.SetNoStore(); Response.Cache.SetExpires(new DateTime(1900,01,01,00,00,00,00)); 2.每次点击update按钮时,使每次产生的url不一样。用于Datagrid每行的key一样,可定每次传的参数一样,也就是url一样,可不可以增加一个参数,每次传一个随机数呢?当然可以。修改后url如下: Date date = new Date(); string url = "WebForm2.aspx?key1="+ par1 +"&key2="+ par2 +"&flag=" + date; 3.修改浏览器配置。步骤如下: Tools->Internet Options ->General 在Template Internet files部分选择Setting,在Check for newer versions of stored pages 处选第一个就可以了(默认是Automatically).点击确定就搞定了,当然这是治标不治本的方法,只是告诉大家这样可以临时解决。
[@more@]来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/106285/viewspace-1026958/ ,如需转载,请注明出处,否则将追究法律责任。