我想对条件状态使用xp:confirm操作。有没有一种方法可以计算此控件的呈现属性?
我可以为整个xp:eventHandler计算渲染属性,但不能为xp:actionGroup或xp:confirm计算渲染属性。
答案 0 :(得分:0)
xp:confirm
仅使用以下命令将客户端JavaScript添加到按钮中:
if (!XSP.confirm("YOUR MESSAGE")){
return false;
}
XSP.confirm()
是XPages包装器,用于JavaScript确认。最灵活的方法是在按钮的“客户端”选项卡上编码所需的客户端JavaScript,执行return false
以防止按钮按要求发送到服务器。
答案 1 :(得分:0)
这是一个非常综合的代码段,但是,如果我理解正确并且适合您的用例,则可以满足您的需求。不太优雅,但是可以。
<xp:panel id="mainPanel">
<xp:button id="myBtn1"
value="Ask confirmation on submit">
<xp:eventHandler event="onclick" submit="true"
refreshMode="partial" refreshId="mainPanel">
<xp:this.action>
#{javascript:
requestScope.put('myAnyVar', 'askConfirmation');
}
</xp:this.action>
</xp:eventHandler>
</xp:button>
<xp:button id="myBtn2"
value="Dont ask confirmation on submit">
<xp:eventHandler event="onclick" submit="true"
refreshMode="partial" refreshId="mainPanel">
<xp:this.action>
#{javascript:
requestScope.put('myAnyVar','dontAskConfirmation');
}
</xp:this.action>
</xp:eventHandler>
</xp:button>
<input type="hidden" id="doConfirm"
value="#{requestScope.myAnyVar eq 'askConfirmation' ? '1' : '0'}">
</input>
</xp:panel>
<br />
<br />
<xp:button id="btnSubmit"
value="Submit">
<xp:eventHandler event="onclick" submit="true"
refreshMode="complete">
<xp:this.script>
var confirmOption = dojo.byId('doConfirm').value;
if (confirmOption === '1') {
if (confirm('Proceed the submit?')) {
return true;
} else {
return false;
}
} else {
return true;
}
</xp:this.script>
<xp:this.action>
#{javascript:
viewScope.smthSubmitted = new java.util.Date();
}
</xp:this.action>
</xp:eventHandler>
</xp:button>
<br />
<br />
<xp:text value="Submit time: #{viewScope.smthSubmitted}" />