【发布时间】:2017-10-07 17:24:07
【问题描述】:
当我按下复选框时,选择表格每一页上的记录。请帮帮我
<p:dataTable var="projectMaterial" id="projectMaterial" paginator="true" paginatorAlwaysVisible="true" paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" rows="12" rowsPerPageTemplate="5,10,15" rowSelectMode="true" selection="#{pprMaterialAuthorizationBean.selectedMaterialList}" rowKey="#{projectMaterial.id}" value="#{pprMaterialAuthorizationBean.materialList}">
<p:column headerText="#{lang.labelMaterial}" filterBy="#{lang[projectMaterial.materialLangPrm]}" sortBy="#{lang[projectMaterial.materialLangPrm]}" width="40%">
<h:outputText value="#{lang[projectMaterial.materialLangPrm]}" />
</p:column>
<p:ajax event="toggleSelect" listener="#{pprMaterialAuthorizationBean.onToggleSelect}" update=":form1 :msgs"/>
<p:column id="columnId" selectionMode="multiple" width="40%"/>
</p:dataTable>
【问题讨论】:
-
如果您将选择状态存储在托管 bean
<p:dataTable selection="#{pprMaterialAuthorizationBean.selectedMaterialList}"...>中,那么它将在您来回分页时存储状态。如果您不想要它,请在 actionListener (ajax/non-ajax) 中清除 bean (pprMaterialAuthorizationBean.selectedMaterialList) 中的列表。
标签: jsf checkbox primefaces datatable pagination