为什么不从Xpages动态视图中删除文档

为什么不从Xpages动态视图中删除文档,xpages,Xpages,我用DynamicViewPanel创建了一个新的XPage,它在特定的Notes视图中列出文档。然后,我将动态视图面板配置为显示每行的复选框。然后,我在“动态视图”面板下方创建了一个按钮,该按钮带有选中复选框的文档的计划,并单击该按钮将其删除。下面是我的按钮的Xpages代码,但为什么这不起作用呢 <xp:button value="Delete" id="delete"> <xp:this.onclick submit="true" refreshMode="com

我用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>


找到了一个解决方案,并将其作为问题中的已编辑代码发布。将button元素中的标记更改为包含事件处理程序,并将其包含在操作组标记中

我知道这已经得到了回答-尽管说实话,我不确定我是否喜欢回答中的代码。不,它“看起来不对劲”。我把它粘贴到我的设计师那里,它看起来不对劲。我想应该是这样的:

<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>


确保您具有正确的ACL访问权限。如果您还没有构建登录函数,那么您的用户名将为“匿名”。确保“匿名”具有删除权限。@SteveZavocki当我第一次在中打开应用程序时,它具有登录功能browser@SteveZavocki此外,在ACL中,我属于“Notes开发人员”组,我们已勾选了“删除文档”,请验证数组是否包含已勾选的文档。在for循环中添加打印语句,将唯一ID写入日志。@SteveZavocki谢谢steve会尽快尝试的