对XPages视图中的条目进行计数

对XPages视图中的条目进行计数,xpages,xpages-ssjs,Xpages,Xpages Ssjs,My XPage有一个视图数据源,其中包含一个由URL参数构造的搜索公式(“在视图中搜索结果”) 搜索结果显示在位于面板内的“重复”控件中。如果没有搜索结果,我想隐藏此面板,并显示相应的消息 该面板基于以下代码可见: var vec:NotesViewEntryCollection = view1.getAllEntries(); vec.getCount() != 0; 但是,getAllEntries似乎会在进行筛选之前返回视图中的所有条目。AllEntries的帮助说明“如果一个视图由F

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

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

该面板基于以下代码可见:

var vec:NotesViewEntryCollection = view1.getAllEntries();
vec.getCount() != 0;
但是,getAllEntries似乎会在进行筛选之前返回视图中的所有条目。AllEntries的帮助说明“如果一个视图由FTSearch过滤,则此属性返回过滤视图中的条目。”


我误解了吗?是否有一种方法可以在进行筛选后获取条目数?

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

不要使用数据源,而是获取使用它的控件(例如repeat、viewPanel等)并使用getRowCount()方法。这会给你正确的总数。例如

getComponent("repeat1").getRowCount() 

正在使用视图标题属性

示例:“显示30220中的30个”



注意:这也会计算已分类的行。

对其进行排序。谢谢,保罗。这也是我想做的事。但如果我的复述台上连着传呼机,那就不行了;我只得到当前页面上的项目数,而不是所有过滤视图项目的计数。在这种情况下有什么方法可以做到吗…?仅供参考,TeamStudio Unpluged没有实现getRowCount()(Unpluged是一个移动应用程序,它可以将NSF文件复制到平板电脑上供脱机使用。Unpluged有一个用于XPages的渲染引擎)。为什么不使用重复控件的索引来计算条目数呢。
<xp:this.caption><![CDATA[#{javascript:return "Displaying " + getComponent("viewPanel1").getRowCount() + " of " + view1.getAllEntries().getCount();}]]></xp:this.caption>