【发布时间】:2014-09-01 08:30:10
【问题描述】:
我有一个带有数据滚动器的 Richfaces 扩展数据表。我们编写了一个自己的类来扩展 ExtendeddataModel。
一切正常,直到出现以下情况:
- 转到数据滚动条的最后一页
- 使用任何导致数据量较小的过滤器,这样最后一页就不再存在了
结果:datascroller“跳转”到右侧页面,但datatable仍然显示为空
经过一些调试,我发现在数据滚动器写入日志之前调用了 ExtendeddataModel-Implementation 的“walk()”方法:
The requested page isn't found in the model. Paging is reset to page...
我们对新数据使用过滤、排序、推送机制……所以这是一种复杂的环境,我不能在这里真正发布,但我会尝试指出最重要的部分。
<h:selectManyCheckbox value=#{controller.filter}>
<f:selectItems value="#{controller.filterOptions} />
<a4j:ajax render="table scroller" />
</h:selectManyCheckbox
<rich:extendeddatatable id="table" ... />
<rich:dataScroller for="table" id="scroller" renderIfSinglePage="false"
page="#{controller.page}"
将 render="table" 添加到 datascroller 没有帮助。唯一有帮助的是将渲染放入两个不同的请求中,因此首先只渲染 datascroller,然后渲染数据表。
有没有办法在没有 2 个请求的情况下做到这一点?我可以强制渲染顺序吗?还是我只是错过了 dataScroller/数据表的配置中的某些内容,以便在重置滚动条后呈现它...
【问题讨论】:
标签: richfaces