关于showmodaldialog 打开新窗口后在执行“查询,翻页”操作时,避免弹出新窗口和避免从后台获取“新数据”后不能刷新当前模态页面的解决方案:
案例:从父页面A 通过showmodaldialog的方式 打开模态子页面B,子页面上进行“查询,翻页功能”
1:从父页面A打开子页面B:
var url = "cn.ccb.orms.rcsa.pageflow.RscaQueryItemInfosPopup.flow"; var itemInfo = showModalDialog(url,window,'dialogWidth:800px;dialogHeight:500px;dialogLeft:100px;dialogTop:250px;center:yes;help:yes;resizable:yes;status:yes');
?
2:进入模态页面B后的JS和JAVA代码
<xmdc:verbatim> <base target="_self" /> </xmdc:verbatim> <xmdc:commandButton action="pageQuery" value="8" styleClass="button_dateset" style="width: 30px; margin-right: 5px" onclick="changeFrame();gotoLastPage(this,'page');" disabled="#{page.isLast==true}"> </xmdc:commandButton> <xmdc:outputText value=" 每页显示" style="padding-top:5px"></xmdc:outputText> <xmdc:inputText id="page_length" value="#{page.length}" style="width:50px" maxlength="9" onkeyup="value=value.replace(/[^\d\.]/g,'');"></xmdc:inputText> <xmdc:outputText value="条转到" style="padding-top:5px"></xmdc:outputText> <xmdc:inputText id="page_currentPage" value="#{page.currentPage}" style="width:50px" maxlength="9" onkeyup="value=value.replace(/[^\d\.]/g,'');"></xmdc:inputText> <xmdc:outputText value="页" style="padding-top:5px"></xmdc:outputText> <xmdc:commandButton action="pageQuery" value="跳转" title="跳转到指定页" styleClass="button" onclick="changeFrame();gotoCustomPage(this,'page');"> </xmdc:commandButton> …… …… …… <xmdc:panelGrid columns="2" border="0" align="center" columnwidths="60px,60px"> <xmdc:commandButton id="queryBtn" action="query" styleClass="button" value="查询" onclick="changeFrame();"></xmdc:commandButton> </xmdc:panelGrid> <xmdc:verbatim> <script type="text/javascript"> //初始化提交FORM的TARGET值。 window.attachEvent('onload', function(){ // alert(window.name); if(window.name=""){ //判断窗体的name,防止查询或者翻页操作时弹出新窗口 document.getElementById("theform").target = "dialogFrame"; }else if(window.name="dialogFrame"){//判断执行查询或翻页操作后,返回当前页面不刷新展现新数据 document.getElementById("theform").target = ""; } }) function changeFrame(){// 判断如果是执行查询或翻页操作,则改变当前窗口form的target值,防止弹出新窗口 document.getElementById("theform").target = "dialogFrame"; } </script> </xmdc:verbatim>
?
1 楼
xyztony1985
2010-04-22
说得有点长,其实就是“提交表单不新开窗口和缓存的问题”。
另外,既然贴代码,请用内置的代码高亮功能,看起来也容易点
另外,既然贴代码,请用内置的代码高亮功能,看起来也容易点