2014-10-17 108 views
0

我正在使用显示名称的重复控制。内容是精确显示的,但我需要一个寻呼机,因为可能有超过30个条目。Xpages重复控制除以零

只要我为这个重复控制添加一个寻呼机,并按下一个按钮在网站上进行部分刷新,我就会得到一个“除零”的错误。

这里是我的重复控制:

<xp:repeat id="repeat1" rows="30" var="namesList" repeatControls="true" indexVar="rowIndex"> 
    <xp:table> 
     <xp:tr> 
      <xp:td> 
       <xp:link escape="true" id="Employee"> 
        <xp:this.text><![CDATA[#{javascript:namesList.getItemValueString("Employee")}]]></xp:this.text></xp:link> 
      </xp:td> 
     </xp:tr> 
    </xp:table> 


<xp:this.value><![CDATA[#{javascript:try { 
    var wfDoc:NotesDocument = docApplication.getDocument(true); 
    var dcNoAnswer:NotesDocumentCollection = database.createDocumentCollection(); 
    var count:Integer = 0; 

    //Gets all response documents, but only adds those to the document collection, without a valid 
    //response to the cycle 
    if (wfDoc.getResponses() != null) { 
     var dc:NotesDocumentCollection = wfDoc.getResponses(); 
     var doc:NotesDocument = dc.getFirstDocument(); 

     while (doc != null) { 
      if (doc.getItemValueString("Response") == "") { 
       dcNoAnswer.addDocument(doc); 
      } 
      doc = dc.getNextDocument(); 
     }  
     dc.recycle(); 
    } 
    docApplication.replaceItemValue("MissingResponsesCount", dcNoAnswer.getCount()); 

    wfDoc.recycle(); 
    return dcNoAnswer; 
} catch(e) { 
    dBar.error("Show no response repeat control data: " + e); 
}}]]></xp:this.value> 
</xp:repeat> 

这是我的传呼机:

<xp:pager layout="Previous Group Next" id="pager3" for="repeat1"></xp:pager> 

正如我所说的,做网站的奥德面板上的局部刷新,我会得到这个错误:

enter image description here

我一直在寻找一段时间的错误,但我在这里看不到任何错误。有没有人有这样的问题,也许有一个解决方案?

+1

您忽略了重要部分:计算内容;-)请为此添加您的代码。 – 2014-10-17 11:01:42

+0

好吧,我已经添加了代码。首先我跳过它,因为我不想让它变得复杂,因为我不认为这个代码是问题。但是谁知道? :) – 2014-10-17 11:18:29

+0

我不确定,但我认为你不能将文档添加到从另一个文档的响应中创建的集合。 – 2014-10-17 11:21:26

回答

0

你有repeatControls =“true”设置。这意味着“一次又一次创建控件”,因此您不能使用传呼机进行导航,如此处所述。删除repeatControls =“true”,它将起作用。

如果查看堆栈跟踪,它将在getStart()上失败。

+0

现在,它的工作!非常感谢你! – 2014-10-20 05:38:43

0

尝试添加alwaysCalculateLast="false"到您的寻呼机。重复控制可能有0个值(因为dcNoAnswer),也许你已经在你的xsp属性设置中设置了xsp.repeat.allowZeroRowsPerPage=true