Jsf primefaces数据表标题复选框选择页面的所有行

Jsf primefaces数据表标题复选框选择页面的所有行,jsf,checkbox,primefaces,datatable,pagination,Jsf,Checkbox,Primefaces,Datatable,Pagination,当我按下复选框时,在表格的每一页上选择记录。请帮帮我 <p:dataTable var="projectMaterial" id="projectMaterial" paginator="true" paginatorAlwaysVisible="true" paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}

当我按下复选框时,在表格的每一页上选择记录。请帮帮我

<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>


public void selectAllFalas(){
如果(选择AllFalas==false){
selectedMaterialList=(List)materialList;
选择AllFalas=true;
}否则{
selectedMaterialList=new ArrayList();
选择AllFalas=false;
}
}

如果将选择状态存储在托管bean中,则在来回分页时,它将存储该状态。如果不需要,请清除actionListener(ajax/非ajax)中bean(
pprMaterialAuthorizationBean.selectedMaterialList
)中的列表。
 <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.selectAllFalas}" update=":form1:projectMaterial"/>
                                <p:column selectionMode="multiple" width="40%"/>
 </p:dataTable>


public void selectAllFalas() {
            if(selectAllFalas == false) {
                selectedMaterialList = (List<HydPipeMaterial>) materialList;
                selectAllFalas = true;
            }else{
                selectedMaterialList = new ArrayList<>();
                selectAllFalas = false;
            }
        }