具有分页器的Ace Datatable行选择器

时间:2012-06-28 12:16:03

标签: icefaces ace-datatable

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

1 个答案:

答案 0 :(得分:2)

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

您可以尝试将reportBean更改为SessionScoped,但这会产生其他影响,您应该考虑这些影响。