`
gloryme
  • 浏览: 122820 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

解决刷新时弹出是否重新提交数据

    博客分类:
  • jsp
阅读更多

在struts config 配置文件   <forward path="/xx.jsp" name="info" color="#ff0000"></forward>redirect="true">   把地址重定向

既在IE地址中不会出现xx.do

弹出窗口刷新它的父页面后。出现不重新发送信息,则无法刷新网页
因为做程序中遇到这个问题,所以搜索到了火靶子的文章  ,文章和回复中大致有上大致有以下几种解决方法:
方法1:
window.opener.location.reload();
这种方法用于已经提交了数据的页面会提示标题信息;
点确定后后数据更新;
方法2:
window.opener.location.href=window.opener.location.href;
这种方法会丢失当前浏览器内的信息;
方法3:
window.location.href=window.location.href ;
window.location.reload;
这种.....
方法4:
很简单,为了防止探出刷新的东西,可以把向父窗口提交的那个FORM改成GET属性,而不使用POST属性就可以了!
在我的代码里测试,出现javascript错误,没有仔细研究;
方法5:
将下面的代码写在脚本文件里,然后在服务器端调用就可以了
function bb()
{
var x = window.parent.dialogArguments;
x.Relocation();
window.close();
}
效果如方法1.
但如果,他的父页面是嵌套在另一个页面 A 中,怎么刷新页面A?
Gapple的方法:
我在工作中的ASP.NET项目中也遇到了这个问题,需要在添加修改等操作以后关闭子窗口,同时刷新父窗口,非常的棘手,我浏览了以上各位的回复,但都失败了,呵呵,不是各位的代码和思路有问题,是我使用的是window.showModelessDialog()。

我是这样解决的:
首先在父上放一个刷新列表用的按扭控件,然后对它进行编程,调用onClick来运行Codebehind里的C#函数,当然,这些都是和你的程序有关的东西,大家自己研究,以我的程序为例,我在这个按扭上运行了一个公用类的一个函数,用来render当前页的DataGrid。我把这个按扭控件的ID设为refresh,其实什么都可以。

然后在子窗体上的添加或者修改按扭上的服务器端事件中注册一个js代码块来执行window.dialogArguments.document.forms[0].refresh.click();
之所以没有self.close()是因为父窗体提交以后,IE6会自动关闭子窗体,子窗体消失的速度非常快,可以说是自动的self.close()。

好了,以上代码都写好了以后,就可以在父窗体的DataGrid的SelectedIndexChanged事件中调用函数来注册js代码块。来执行window.showModelessDialog()。

由于本人目前专心开发ASP.NET程序,并且都是使用ModelessDialog来力争实现一种WinForm的外观和用户体验,所以对这个父子窗口的功能非用不可。呵呵,虽然这个方法不是什么太高明的方法,需要在父窗体上放一个刷新按扭,并且还要对这个按扭编程刷新ASPX页,但由于有ASP.NET特有的一些form特性,使得以上的实现效果还是非常好的。但不知道离开了ASP.NET环境,这个刷新按扭还应该做什么其它的考虑了,不做ASP.NET的话,我这个方法恐怕实现起来还是显得比较笨拙了。不过,在ASP.NET环境中调用的话,效果的确非常理想。

不是很明白
受Gapple兄的启发

,我得想法是主动提交父窗口的form,javascript代码如下:
window.opener.window.document.forms(0).submit();
这样服务器端会主动提交一次form.如果之前没有考虑form主动提交的情况,再返回的页面信息可能也会有些丢失.不过既然球已经被主动踢倒后台,我们在后台稍做改动就能得到更新数据后的父页面.

多亏了form,不过如果没有form的话又何来提交数据的动作而带来的提示窗口呢呢.我晕了

写完了又重新遍历以下原文章,路人已经在回复中说到了这个方法,看来网上真的没有不能解决的问题.呵呵,
我等懒人有福了

 

分享到:
评论

相关推荐

    使用mvc无刷新提交

    使用mvc无刷新提交,提交后会及时更新数据

    刷新action避免重复提交

    防止提交 在用struts2.0标签开发...在点击"提交"后,我们通常会弹出一个提示信息的页面,用户此时有可能会按f5刷新当前提交的action,从而将多个相同的数据保存到了后台数据库,并且造成了潜在的安全危险! 避免重复提交呢?

    ThickBox关闭层自动刷新和页面数据提交冲突问题

    用Thickbox弹出层时,提交弹出层里边的数据,后台方法有时候能进去,有时候不进去的解决方法!

    [removed].reload 刷新使用分析(去对话框)

    刷新时,如果提交数据的动作,则会出现讨厌的对话框! 解决此问题,应该这样写: [removed].href=[removed].href; [removed].reload; 同理,如果是刷新父窗口,应该这样写: window.opener.location.href=window...

    关于页面刷新,事件重复提交的方法分享

    在处理页面事件时,我们会经常会碰到这样的情况:当我们在提交一项页面表单时,在提交成功后,当我们试图按F5刷新页面时,数据会再次的被重复提交

    子窗口与父窗口刷新

    java jsp 子窗口提交数据 父窗口刷新为最新数据,利用ajax刷新

    layui form表单提交后实现自动刷新

    刚刚使用layui 来做东西,对这一切都不熟悉,使用一下form表单,但是,不能成功的使用。 问题: ...我懒得去找这个问题,因为,以前提交数据使用jQuery的form提交的话用的是实例化的方法serialzeab

    JavaScript实现提交模式窗口后刷新父窗口数据的方法

    来得到父窗口,但是可以借助showModealDialog的返回值来判断是否刷新,当调用showModealDialog时,父窗口代码会停在这一行,当弹出的模式窗口关闭时给window.returnValue赋值,再调用window.close()方法,最后submi

    页面自动刷新,不用按回车键来提交数据!

    如果页面要自动刷新,但该页面有Request.Form,那么通常会出现一个提示框,需要用户确定来提交数据,这就不是自动刷新了。而对于监控或股票显示来说,不要用户干预又非常重要,下面就可以解决该问题:[removed]&lt;!...

    关闭时刷新父窗口两种方法

    window.opener.location.reload()刷新父窗口window.opener.location.reload() 与 window.opener.location.href=window.opener.location.href 都是弹出窗口关闭时用来刷新父窗口。 但[removed].Reload 如果有数据提交...

    Struts2防止表单重复提交

    当用户将信息提交到服务器,服务器响应采用forward方式调转到下一个页面后,此时地址栏中显示的是上个页面的URL,若刷新当前页面,浏览器会将再次提交用户先前输入的数据,就会再次出现表单重复提交的问题。...

    Java web解决表单重复提交问题

    我们大家再进行web开发的时候,必不可少会遇见表单...点击F5刷新页面:当用户点击submit将已经写好的表单数据提交到服务器时,可以在浏览器的url看到地址和参数的变化,但因为网速等问题,用户当前页面并未刷新,或者点

    PHP无刷新表单及数据验证插件源代码.rar

    PHP无刷新表单及数据验证插件源代码,使用了formValidator插件,其核心同样离不开jQuery,jquery.jqtransform.js则是表单验证插件的核心,最后又配合CSS完成了一个漂亮的表单,填写完数据,点提交时候激活插件,若有...

    php解决和避免form表单重复提交的几种方法

    因为我们不想让我们的服务器重复处理没必要的数据,同时我们也是避免我们的数据库产生重复的数据,避免表单重复提交也是让我们的网站更安全的一种表现。 先看一下有哪些情况下回导致表单重复提交呢,知道哪些情况下...

    javascript刷新父页面的各种方法汇总

    用iframe、弹出子页面刷新父页面iframe [removed] parent.location.reload(); [removed] 弹出子页面 [removed] window.opener.location.reload(); [removed] 子窗口刷新父窗口 [removed] self.opener.location....

    jquery基础学习实例集.rar

    jquery初学者实例大全,里面一共包括了三季内容,有些是作者自创的实例,有些是从网络上下载然后修改的,对jquery初学者来说,非常实用且基础的实例,比如一些弹出信息框、伪装链接、无刷新提交、表格排序、更改字体...

    struts2中防止重复提交的方法

    在点击"提交"后,我们通常会弹出一个提示信息的页面,用户此时有可能会按f5刷新当前提交的action,从而将多个相同的数据保存到了后台数据库,并且造成了潜在的安全危险! 如何避免重复提交呢?

    Asp.net中阻止页面按钮多次提交的解决办法

    当大量用户同时在线访问该站点时,应用程序服务器出现CPU占用100%的糟糕状况,页面会卡住不动,用户不明情况连续点击提交按钮重复提交,造成数据库中出现大量的重复数据。 其实,即便服务器没有崩掉,快速频繁点击...

    申请单管理系统

    5点击“创建申请单”按钮,弹出“选择申请单”对话框,并根据所选择的申请单类型,弹出相应的创建申请单对话框。 IP地址申请 1.页面加载后,“申请人ID”显示为当前登录人的ID;“申请部门”显示当前登录人所属的...

    Ajax 的考试系统的实现

    在.Net2.0 技术中,Ajax 的出现可以较好地解决 这些在网络考试过程中所出现的问题。Ajax 技术打 破了使用页面重载的惯例,提供与服务器异步通信 的能力, 从而使用户从请求/响应的循环中解脱出 来。Ajax 是一种允许...

Global site tag (gtag.js) - Google Analytics