在XPage视图中计数条目

时间:2012-05-25 09:25:32

标签: xpages xpages-ssjs

我的XPage有一个视图数据源,其中包含一个根据URL参数构建的搜索公式(“在视图中搜索结果”)。

搜索结果显示在位于面板内的重复控件中。如果没有搜索结果并且显示相应的消息,我想隐藏此面板。

根据以下代码显示该面板:

var vec:NotesViewEntryCollection = view1.getAllEntries();
vec.getCount() != 0;

但是,似乎getAllEntries在进行过滤之前返回视图中的所有条目。 All for Entry的帮助说“如果视图被FTSearch过滤,则此属性返回过滤视图中的条目。”

我误解了吗?有没有办法可以在过滤完成后获得条目数?

2 个答案:

答案 0 :(得分:16)

当您通过SSJS访问dominoView数据源时,您没有获得dominoView,而是与之关联的NotesView。这就是NotesView类可用的属性和方法的原因。但是搜索是在dominoView数据源前端而不是与它关联的NotesView对象上执行的。

取代使用数据源,获取使用它的控件(例如A repeat,viewPanel等)并使用getRowCount()方法。这将为您提供合适的总数。 E.g。

getComponent("repeat1").getRowCount() 

答案 1 :(得分:1)

使用View标题属性....

示例:"显示30个30220"

<xp:this.caption><![CDATA[#{javascript:return "Displaying " + getComponent("viewPanel1").getRowCount() + " of " + view1.getAllEntries().getCount();}]]></xp:this.caption>

注意:这也会对分类的行进行计数。