2017-05-09 75 views
0

選擇記錄的表的每一頁上,當我按複選框。請幫我primefaces數據表頭複選框選擇行所有頁面的

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

如果你存儲在一個託管bean'選擇狀態'然後它會你當存儲狀態來回翻頁。如果你不希望它在一個ActionListener(AJAX /非Ajax)清除豆('pprMaterialAuthorizationBean.selectedMaterialList')名單。 –

回答

0
<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; 
      } 
     }