我非常希望使用xe:toolbar控件来保存文档,但我无法弄清楚如何执行此操作。 我有这个代码,发现导航很容易。但是节约......
<xe:toolbar
id="toolbar2">
<xe:this.treeNodes>
<xe:basicLeafNode
href="whereToGo.xsp"
label="Save and close">
<xe:this.onClick>
<![CDATA["<WHAT GOES HERE?>"]]>
</xe:this.onClick>
</xe:basicLeafNode>
</xe:this.treeNodes>
</xe:toolbar>
答案 0 :(得分:1)
basicLeafNode的onClick事件仅适用于客户端JS。您需要使用每个basicLeafNode的submitValue属性,然后将SSJS添加到outline控件的onItemClick事件中。然后,您可以使用context.getSubmittedValue()来检查单击的节点,然后相应地执行操作。
请在此处查看我的回答:https://stackoverflow.com/a/14760609/785061
答案 1 :(得分:0)
问题是你只有clientSide onClick。您可以从ClientSide调用SSJS EventHanlder,如Jeremy Hodge.描述的
对于这个例子,我使用了Jeremy的完整executeOnServer脚本,但我认为你可以改变一下。我还使用了完全刷新,如果你不想刷新整个页面,你也可以使用部分刷新。
<xe:toolbar
id="toolbar2">
<xe:this.treeNodes>
<xe:basicLeafNode
href="whereToGo.xsp"
label="Save and close"
onClick="executeOnServer('saveDocument');">
</xe:basicLeafNode>
</xe:this.treeNodes>
</xe:toolbar>
<xp:scriptBlock>
<xp:this.value><![CDATA[
var executeOnServer = function () {
if (!arguments[0])
return false;
var functionName = arguments[0];
var refreshId = (arguments[1]) ? arguments[1] : "@none";
var form = (arguments[1]) ? XSP.findForm(arguments[1]) : dojo.query('form')[0];
var options = (arguments[2]) ? arguments[2] : {};
dojo.query('[name="$$xspsubmitid"]')[0].value = form.id + ':' + functionName;
XSP._partialRefresh("post", form, refreshId, options);
}
]]></xp:this.value>
</xp:scriptBlock>
<xp:eventHandler event="saveDocument" submit="false"
id="saveDocument">
<xp:this.action>
<xp:actionGroup>
<xp:executeScript>
<xp:this.script><![CDATA[#{javascript:println("save")}]]></xp:this.script>
</xp:executeScript>
<xp:save></xp:save>
</xp:actionGroup>
</xp:this.action>
</xp:eventHandler>
另一种方式(如Oliver已经提到的)使用放置在隐藏div中的真实按钮。
答案 2 :(得分:0)
这是我最终做的事情。 Per的建议导致调查工具栏的onItemClick事件,结果很简单。 感谢所有人的贡献!
<xp:this.data>
<xp:dominoDocument
var="docPrognosis"
formName="prognosis"
computeWithForm="onsave">
</xp:dominoDocument>
</xp:this.data>
<xe:toolbar
id="toolbar1">
<xe:this.treeNodes>
<xe:basicLeafNode
label="Save"
submitValue="save">
</xe:basicLeafNode>
</xe:this.treeNodes>
<xp:eventHandler
event="onItemClick"
submit="true"
refreshMode="complete">
<xe:this.action>
<![CDATA[#{javascript:
if (context.getSubmittedValue() == "save") {
if (docPrognosis.save()) {
context.redirectToPage("prognosisview.xsp");
}
}
}]]></xe:this.action>
</xp:eventHandler>
</xe:toolbar>
答案 3 :(得分:0)
如果要使用简单操作(保存文档),则:设置工具栏并使用提交值保存节点=&#39;保存&#39;然后在简单的actins中添加具有条件公式的操作组:context.getSubmittedValue()==&#34; save&#34;。现在为此操作添加简单操作。