我正在使用带有分页的ace数据表。现在,在选择了一些行后的页面中,当我转到另一个页面并返回时,选择消失。不再选择行。
以下是代码:
<ace:dataTable var="device" value="#{reportBean.searchTableList}"
id="MeterTable" rows="10" paginator="true"
paginatorPosition="bottom" page="1" selectionMode="multiple"
stateMap="#{reportBean.rowStateMap}" pageCount="4"
rowStyleClass="oddRow1,evenRow1">
<ace:column id="column3" headerText="Meter Name"
sortBy="#{device.device_name}" filterBy="#{device.device_name}"
selected="true"
filterMatchMode="contains" styleClass="dataTableHeader">
<ice:outputText value=" #{device.device_name}" />
</ace:column>
</ace:dataTable>
答案 0 :(得分:2)
看起来你的reportBean是RequestScoped。 这意味着当您浏览到包含表的页面时,将加载reportBean,当您进行选择时,选择值将存储在reportBean.rowStateMap中。当浏览到另一个页面时,reportBean和选择信息被删除,因为它不是同一个请求(Request Scoped!)。当您再次浏览到表格页面时,会创建一个新的reportBean,其中没有关于选择的任何信息
您可以尝试将reportBean更改为SessionScoped,但这会产生其他影响,您应该考虑这些影响。