我是这样的:
<a4j:repeat value="#{results}" var="hdr" rowKeyVar="idx">
<rich:dataTable var="item" value="#{results}" id="tbl#{idx}" first="#{idx}" rows="1">
<a4j:commandButton value="update this table only" reRender="tbl#{idx}" />
</rich:dataTable>
</a4j:repeat>
当我从输出html检查时,数据表的id类似于form:0:tbl,最后没有idx。
当结果中只有一行时,reRender将起作用。
所以这里有一些问题:
实际上我已成功重新整理了整个a4j:s:div包围的重复块。但刷新整个块会重置滚动条,所以不希望....
答案 0 :(得分:0)
对于1,表的生命周期可能处于不同的阶段。
对于2,它实际上是指UIComponent.findComponent用于查找给定ID的组件。
对于3,也许尝试使用UIComponent.findComponent()或#{rich:clientId('id')}来查看a4j的实际HTML元素ID:重复嵌入的rich:dataTable是否可以被检索。
如果是,那么reRender可以以某种方式工作。如果不是,请查看是否有任何内容可以覆盖reRender查找组件的方式。
答案 1 :(得分:0)
好的最新实验表明,只需使用rich:dataTable id即可。
要记住的关键:
结论,想得太多,未能在开始时尝试最简单的解决方案。