0

我正在使用带有分页的 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>
4

1 回答 1

2

好像您的 reportBean 是 RequestScoped。这意味着当您浏览到带有表格的页面时,reportBean 被加载,当您进行选择时,选择值存储在 reportBean.rowStateMap 中。当浏览到另一个页面时,reportBean 和选择信息被删除,因为它不是同一个请求(Request Scoped!)。当您再次浏览到表格页面时,会创建一个新的 reportBean,它没有任何有关选择的信息

您可以尝试将您的 reportBean 更改为 SessionScoped 但这有其他影响,您应该考虑。

于 2012-11-09T14:11:37.390 回答