xpages - XPages - 如何在 xp:repeat control 中显示所有记录?
问题描述
在我的 XPage 上,我定义了一个数据源,它是一个过滤视图:
<xp:this.data>
<xp:dominoView var="viewItems" viewName="myTodoList">
<xp:this.categoryFilter><![CDATA[#{javascript:return sessionScope.get("userFilter");}]]></xp:this.categoryFilter>
</xp:dominoView>
</xp:this.data>
我想通过重复控件显示数据。但我想显示数据集中的所有记录。我计算了多少 xp:this.rows 属性?
<xp:repeat id="repeat1" value="#{viewItems}"
var="obj" indexVar="idx">
<xp:this.rows><![CDATA[#{javascript:getComponent("repeat1").getDataModel().getRowCount()}]]></xp:this.rows>
</xp:repeat>
解决方案
实际上,该rows
属性只是在分页开始时设置“截止”。而不是(大量)计算视图的当前大小,只需将其设置为“足够大”的值。魔术常数“9999”对我有用,但我认为 MAX_INT 是极限。
请记住,对于大量数据,渲染您的页面需要一段时间,因此您肯定会调用性能问题。
此外,Java Notes* 类的后端 C API 引用有约 10k 的内部限制 - 当命中时,服务器/客户端崩溃。使用纯 XSP 组件应该是安全的。一旦您使用使用 Notes* 类(并且不回收)的额外代码为您的页面增添趣味,尤其是在循环/重复内部,您的限制将只是该值的一小部分。
推荐阅读
- postgresql - 将时间戳值与 postgresql 中没有时区列的时间戳进行比较
- amazon-s3 - 如何正确重启kafka s3 sink connect?
- android - java.lang.ClassCastException: java.lang.Object[] 不能转换为
- docker - 如何在 centos 7 lxc 中运行 docker?
- javascript - 如何使用 jquery animate 滚动
- javascript - 使用 TypeScript 进行哪个更好的声明?
- java - 哈希数处的哈希字符串 java
- unit-testing - spring-boot 和 mockito 测试 - 为什么我的测试失败了?
- java - Flux.fromIterable 作为控制器方法结果的不同线程处理
- php - 隐藏数组元素的锚点