怎样在关闭一个对话框的同时刷新页面
2个回答
展开全部
一, window.opener.location.reload() 如果改页面没提交过,这个方法好使.但是这个页面一旦提交过后,系统就会提示"重试或取消”的对话框.
二 window.opener.location = window.opener.location;这个方法肯定不提示,但是有个问题就是分页显示的时候,一刷新总是会显示第一页,这个也是理所当然,因为默认请求的就是第一页
三 window.opener.form1.submit();这个方法也不提示了,这个方法就是自动提交页面,绕开那个烦人提示的界面,但是如果被刷新的页面用到了比如gridwiew控件之类的,里面的数据可能不会随着刷新而发生变化,原因就是gridwiew的数据绑定是在某个控件的事件中进行,而页面是通过submit()提交的,不会触发该控件的事件.gridwiew中的数据也是通过读取viewstat中内容获得的,所以在刷新过程中数据不会发生变化.
四 window.opener.__doPostBack(" Control","");其中 Control 是控件ID,这个方法就是克服了三的缺点,不用.opener.form1.submit()这样直接提交.不仅让页面自动提交,而且还要想办法让控件的事件也执行.
注意第四种方法也不是完美的,有的页面是没有这样的控件,有的页面有这个控件但也不能触发数据绑定事件.比如页面数据是随下框内容发生变化的那种页面.因为页面数据是否重新绑定取决于下拉框中内容是否发生变化.而打开子窗体前后时下拉框内容肯定没有变化,所以页面内容也不会变化.
五,针对四,我们可以在父页面用点小技巧,比如在Page_Load中绑定数据时不加IsPostBack判断,但是不好就不好在点按钮时同样的数据会绑定两遍.
二 window.opener.location = window.opener.location;这个方法肯定不提示,但是有个问题就是分页显示的时候,一刷新总是会显示第一页,这个也是理所当然,因为默认请求的就是第一页
三 window.opener.form1.submit();这个方法也不提示了,这个方法就是自动提交页面,绕开那个烦人提示的界面,但是如果被刷新的页面用到了比如gridwiew控件之类的,里面的数据可能不会随着刷新而发生变化,原因就是gridwiew的数据绑定是在某个控件的事件中进行,而页面是通过submit()提交的,不会触发该控件的事件.gridwiew中的数据也是通过读取viewstat中内容获得的,所以在刷新过程中数据不会发生变化.
四 window.opener.__doPostBack(" Control","");其中 Control 是控件ID,这个方法就是克服了三的缺点,不用.opener.form1.submit()这样直接提交.不仅让页面自动提交,而且还要想办法让控件的事件也执行.
注意第四种方法也不是完美的,有的页面是没有这样的控件,有的页面有这个控件但也不能触发数据绑定事件.比如页面数据是随下框内容发生变化的那种页面.因为页面数据是否重新绑定取决于下拉框中内容是否发生变化.而打开子窗体前后时下拉框内容肯定没有变化,所以页面内容也不会变化.
五,针对四,我们可以在父页面用点小技巧,比如在Page_Load中绑定数据时不加IsPostBack判断,但是不好就不好在点按钮时同样的数据会绑定两遍.
推荐于2016-03-04 · 知道合伙人数码行家
可以叫我表哥
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:25897
获赞数:1464977
2010年毕业于北京化工大学北方学院计算机科学与技术专业毕业,学士学位,工程电子技术行业4年从业经验。
向TA提问 私信TA
关注
展开全部
参考代码如下:
// 关闭窗口.
function closeWin(){
// 可能存在frame页面,所以要引用top窗口.
var win = top.window;
try{
// 聚焦.
if(win.opener) win.opener.focus();
// 避免IE的关闭确认对话框.
win.opener = null;
}catch(ex){
// 防止opener被关闭时代码异常。
}finally{
win.close();
}
}
// 刷新打开本窗口的opener窗口.
function refreshOpener(){
// 可能存在frame页面,所以要引用top窗口.
var win = top.window;
try{
// 刷新.
if(win.opener) win.opener.location.reload();
}catch(ex){
// 防止opener被关闭时代码异常。
}
}// 刷新opener窗口后关闭自己。
function refreshOpenerAndCloseMe(){
refreshOpener();
closeWin();
} <script language="JavaScript" type="text/JavaScript">
window.opener.location.reload(); //刷新父窗口
window.close(); //关闭子窗口.
</script>
// 关闭窗口.
function closeWin(){
// 可能存在frame页面,所以要引用top窗口.
var win = top.window;
try{
// 聚焦.
if(win.opener) win.opener.focus();
// 避免IE的关闭确认对话框.
win.opener = null;
}catch(ex){
// 防止opener被关闭时代码异常。
}finally{
win.close();
}
}
// 刷新打开本窗口的opener窗口.
function refreshOpener(){
// 可能存在frame页面,所以要引用top窗口.
var win = top.window;
try{
// 刷新.
if(win.opener) win.opener.location.reload();
}catch(ex){
// 防止opener被关闭时代码异常。
}
}// 刷新opener窗口后关闭自己。
function refreshOpenerAndCloseMe(){
refreshOpener();
closeWin();
} <script language="JavaScript" type="text/JavaScript">
window.opener.location.reload(); //刷新父窗口
window.close(); //关闭子窗口.
</script>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询