我有一个XPages应用程序,当用户单击对话框上的按钮时,该应用程序应该保存主文档(并执行其他一些操作)。该对话框由CSJS函数显示,该函数根据setInterval命令运行。对话框和显示它的所有编程都在自定义控件上。我没有问题显示对话框,但是无法想出保存底层文档的方法。我在其各自的XPage上有其他对话框,并通过单击(和一些SSJS)保存文档工作正常,但如果对话框在CC上,相同的过程似乎不起作用。我已经搜遍了整个网络,包括StackOverflow,并且无法找到我需要的东西。关于我缺少什么的任何想法?
以下是我最近一次尝试的代码:
<xp:button value="Continue" id="button1">
<xp:eventHandler event="onclick" submit="false" id="eventHandler1">
<xp:this.script>
<![CDATA[
if (intvlID2) {
clearInterval(intvlID2);
}
var b18 = dojo.query('[id$="button18"]')[0];
if (b18) {
b18.click();
} else {
location.reload(true);
}
XSP.closeDialog('#{id:WarningDialog}');
]]>
</xp:this.script>
</xp:eventHandler>
</xp:button>
如您所见,它首先清除间隔,然后在底层表单上查找按钮。事实上,我已经能够验证它确实找到了按钮,但click()命令没有任何反应。它找到的按钮包括这个看似不执行的保存命令:
document1.getDocument(true).save();
当鼠标点击或用手指点击时按钮完美无缺,但是当CC上的另一个按钮以编程方式“点击”按钮时,按钮效果不佳。
答案 0 :(得分:0)
currentDocument全局变量可用于访问最近的dominoDocument数据源。或者,“关闭扩展库”对话框在关闭对话框时具有附加参数,即刷新区域的ID。也许您可以使用它来触发保存,例如在关闭时设置requestScope变量,在刷新区域中设置如果设置了requestScope变量则执行保存,并在保存后清除requestScope变量?