【发布时间】:2013-06-26 02:53:03
【问题描述】:
我有这样的:
<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。
当结果中只有一行时,重新渲染将起作用。
所以这里有一些问题:
- 为什么 dataTable 的 id 不能与 EL 表达式一起使用,而“first”属性却很好用?
- reRender 是如何工作的,即使我只指定了 tbl,它仍然可以解析,而实际的 HTML id 更长,例如 form:0:tbl? (如果我知道 reRender 是如何工作的,我也许可以破解它以使用 a4j:repeat...)
- 是否有任何技术或解决方法可用于仅刷新 a4j:repeat 中的特定数据表?
事实上,我已经成功地重新渲染了被 s:div 包围的整个 a4j:repeat 块。但是刷新整个块会重置滚动条,所以它是不需要的......
【问题讨论】:
标签: ajax jsf datatable richfaces uirepeat