我创建了一个带有DynamicViewPanel的新XPage,它列出了某个Notes视图中的文档。然后我将动态视图面板配置为显示每行的复选框。然后,我在动态视图面板下创建了一个按钮,其中包含使用复选框选择文档的计划,然后单击按钮将其删除。下面是我的按钮的Xpages代码,但为什么这不起作用?
<xp:button value="Delete" id="delete">
<xp:this.onclick submit="true" refreshMode="complete">
<![CDATA[#{javascript:var viewPanel=getComponent
("dynamicViewPanel1");
var docIDArray=viewPanel.getSelectedIds();
for(i=0; i < docIDArray.length; i++){
var docId=docIDArray[i];
var doc=database.getDocumentByID(docId);
doc.remove(true);
}}]]></xp:this.onclick>
</xp:button>
编辑:更改为以下后似乎正在工作
<xp:button value="Delete" id="delete">
<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
<xp:this.action>
<xp:actionGroup>
<![CDATA[#{javascript:var viewPanel=getComponent
("dynamicViewPanel1");
var docIDArray=viewPanel.getSelectedIds();
for(i=0; i < docIDArray.length; i++){
var docId=docIDArray[i];
var doc=database.getDocumentByID(docId);
doc.remove(true);
}}]]>
</xp:actionGroup>
</xp:this.action>
</xp:eventHandler>
</xp:button>
答案 0 :(得分:0)
找到一个解决方案并将其作为编辑后的代码发布在问题中。更改了按钮元素中的标记以包含事件处理程序,并将其包含在操作组标记
中答案 1 :(得分:0)
我知道这已经得到了解答 - 虽然说实话但我不确定我喜欢答案中的代码。不,它不“看起来正确”。我把它粘贴到我的设计师那里看起来不对劲。这应该是我想的那样:
<xp:button value="Label" id="button3">
<xp:eventHandler event="onclick" submit="true"
refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:var viewPanel=getComponent
("dynamicViewPanel1");
var docIDArray=viewPanel.getSelectedIds();
for(i=0; i < docIDArray.length; i++){
var docId=docIDArray[i];
var doc=database.getDocumentByID(docId);
doc.remove(true);
}}]]></xp:this.action>
</xp:eventHandler></xp:button>