XPages:如何创建一个回调给调用者的对话框

时间:2013-11-29 15:47:31

标签: dojo callback xpages lotus-notes lotus-domino

我有一个包含2个自定义控件的XPage。第一个自定义控件具有重复控件,第二个用作对话框。

用户可以通过单击删除链接从重复控件中删除一行。然后我使用rowVar.getDocument.getNoteID并删除文档。 我想要的是先询问用户:“你确定要删除吗?”

我在CSJS中使用了“window.confirm()”,但我不喜欢默认的提示框。那么我使用了dojo对话框,但是我不能在其中使用rowVar的重复控制来获取documentId。

目前我在对话框的OK按钮中有代码但我想仅使用OK / Cancel按钮作为true / false并执行主自定义控件中的代码。有没有办法将按钮的值传递给调用者?

1 个答案:

答案 0 :(得分:2)

我在很多方面做到了这一点。基本上,将查找要删除的文档所需的信息写入viewScope变量。然后创建一个独立的事件处理程序,该处理程序从对话框的“确定”或“取消”按钮调用。

所以eventHandler看起来像Jeremey Hodge的这个post

<xp:eventHandler
    event="onfubar"
    id="eventHandler1"
    submit="false">
    <xp:this.action><![CDATA[#{javascript:
// write the ssjs to save the doc base on viewScope parameters
}]]></xp:this.action>
</xp:eventHandler>

然后对话框按钮看起来像这样(基于Mastering XPages书和许多其他来源):

XSP.partialRefreshGet("#{id:eventHandler1}", {
    params : {action :"OK" },
    onComplete : function () {
        // do something else if needed
    },
    onError : function() {
        alert("no soup for you!");
    }
});