我想为用户打开一些动作对话框以进行一些选择。页面本身处于读取模式。但是,对话有输入字段。我想在用户重新加载页面时取消确认表单重新提交对话框。这是我的xPage:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
enableModifiedFlag="false" xmlns:xe="http://www.ibm.com/xsp/coreex">
<xp:button value="Label" id="button1">
<xp:eventHandler event="onclick" submit="true"
refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:getComponent("dialog1").show();}]]></xp:this.action>
</xp:eventHandler>
</xp:button>
<xp:br></xp:br>
<xp:br></xp:br>
<xe:dialog id="dialog1">
<xe:dialogContent id="dialogContent1">
<xp:inputText id="inputText1" style="width:654.0px"></xp:inputText>
</xe:dialogContent>
<xe:dialogButtonBar id="dialogButtonBar1">
<xp:button value="OK" id="button2">
<xp:eventHandler event="onclick" submit="false">
<xp:this.script><![CDATA[XSP.closeDialog("#{id:dialog1}");]]></xp:this.script>
</xp:eventHandler>
</xp:button>
</xe:dialogButtonBar>
</xe:dialog>
</xp:view>
答案 0 :(得分:0)
它有点难看,但除了关闭对话框的客户端JS之外,你可以通过添加服务器端javascript来关闭对话框后重新加载整个XPage。我假设您将在对话框中包含更多代码和逻辑,因此您必须确保这也将执行...关闭按钮的代码可能如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
enableModifiedFlag="false" xmlns:xe="http://www.ibm.com/xsp/coreex">
<xp:button value="Label" id="button1">
<xp:eventHandler event="onclick" submit="true"
refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:getComponent("dialog1").show();}]]></xp:this.action>
</xp:eventHandler>
</xp:button>
<xp:br></xp:br>
<xp:br></xp:br>
<xe:dialog id="dialog1">
<xe:dialogContent id="dialogContent1">
<xp:inputText id="inputText1" style="width:654.0px"></xp:inputText>
</xe:dialogContent>
<xe:dialogButtonBar id="dialogButtonBar1">
<xp:button value="OK" id="button2">
<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
<xp:this.script><![CDATA[XSP.closeDialog("#{id:dialog1}");]]></xp:this.script>
<xp:this.action><![CDATA[#{javascript:context.reloadPage()}]]></xp:this.action>
</xp:eventHandler>
</xp:button>
</xe:dialogButtonBar>
</xe:dialog>
</xp:view>