如何定义条件xp:确认?

问题描述 投票:0回答:2

我想在条件状态上使用xp:confirm操作。有没有办法计算此控件的呈现属性?

我可以计算整个xp:event Handler的呈现属性,但不能为xp:action Group或xp:confirm计算。

xpages
2个回答
0
投票

xp:confirm只是将客户端JavaScript添加到按钮中:

if (!XSP.confirm("YOUR MESSAGE")){
    return false;
}

XSP.confirm()是一个用于JavaScript确认的XPages包装器。最灵活的方法是在按钮的“客户端”选项卡上编写所需的客户端JavaScript,执行return false以防止按钮根据需要发送到服务器。


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}" />
© www.soinside.com 2019 - 2024. All rights reserved.