如果我在Xpage上有一个面板(比如panelData),它有一个被过滤的dominoView(比如viewCollection)的数据定义并返回一组文档。然后在panelData(比如repeatData)中添加一个重复控件,该控件绑定到viewCollection,集合名称是rowData。现在为repeatData添加一个Pager。一切正常。 现在,寻呼机必须能够查询repeatData并获得重复中包含的行数。所以我的问题是有没有办法直接从repeatPager或repeatData获取rowCount而不必重新计算该值。
stWissel建议在这里使用viewCollection.getRowCount():
Getting the number of documents returned to from a viewEntry
但是如果集合中有很多文档,可能会有很大的性能损失,因为这个方法会重新计算文档,但是寻呼机和重复数据已经知道集合中有多少文档。是否有一个较低级别的属性可以从Pager或Repeat重复出现,而不需要重新计算集合中的所有文档?
我想要做的是在rowCount大于rowLimit时隐藏寻呼机。我已将rowLimit作为customProperty添加到Custom Control,然后将repeat的rowLimit设置为compositeData.rowLimit。
答案 0 :(得分:3)
View容器(ViewPanel,DataView等)具有rows属性,该属性提供任何时候要显示的行数。 dominoView将具有寻呼机可用的行数,因此您需要获取该组件的句柄,获取其数据模型并进行查询。因此getComponent("dataView1").getDataModel().getRowCount()
将为您提供您想要的内容,而无需两次查询基础视图。
我强烈推荐这篇写http://www.intec.co.uk/understanding-xpages-views/的博客文章。了解各种运动部件的工作原理是一个真正的启示。