我的XPage有一个视图数据源,其中包含一个根据URL参数构建的搜索公式(“在视图中搜索结果”)。
搜索结果显示在位于面板内的重复控件中。如果没有搜索结果并且显示相应的消息,我想隐藏此面板。
根据以下代码显示该面板:
var vec:NotesViewEntryCollection = view1.getAllEntries();
vec.getCount() != 0;
但是,似乎getAllEntries在进行过滤之前返回视图中的所有条目。 All for Entry的帮助说“如果视图被FTSearch过滤,则此属性返回过滤视图中的条目。”
我误解了吗?有没有办法可以在过滤完成后获得条目数?
答案 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>
注意:这也会对分类的行进行计数。