2017-06-16 61 views
0

我無法正確使用p:dataTable中的selectManyCheckbox查看列的內容。selectManyCheckbox into p:dataTable column

這裏我.xhtml:

<h:form id="projAccess" enctype="multipart/form-data"> 

    <p:dataTable tableStyle="width:auto" id="i_dtb2" var="p" value="#{comBean.l_uSrcRes}" paginator="true" rows="5" rowsPerPageTemplate="5,10" 
     paginatorPosition="bottom"> 

    <p:columnGroup type="header"> 
     <p:row> 
      <p:column rowspan="2" headerText="User" /> 
      <p:column rowspan="2" headerText="Asset" /> 
      <p:column colspan="6" headerText="Roles" /> 
      <p:column rowspan="2" colspan="2" headerText="Action" /> 
     </p:row> 
     <p:row> 
      <p:column headerText="Project Manager"></p:column> 
      <p:column headerText="Project Manager Deputy"></p:column> 
      <p:column headerText="Business Analyst"></p:column> 
      <p:column headerText="Functional Analyst"></p:column> 
      <p:column headerText="Technical Analyst"></p:column> 
      <p:column headerText="Developer"></p:column> 
     </p:row> 
    </p:columnGroup> 

     <p:column> 
      <h:outputText value="#{p.usercd}" /> 
     </p:column> 

     <p:column> 
      <h:outputText value="#{p.asset}" /> 
     </p:column> 

     <p:column colspan="6">   
     <h:panelGroup layout="block" > 
       <p:selectManyCheckbox columns="6" value="#{p.rolesList}"> 
       <f:selectItems value="#{comBean.l_roles}" var="role" itemLabel="#{role}" itemValue="#{role}" /> 
       </p:selectManyCheckbox> 
     </h:panelGroup> 
     </p:column> 

     <p:column> 
      <p:commandButton action="#{comBean.m_updateAccess}" ajax="false" icon="ui-icon-pencil"> 
       <f:setPropertyActionListener value="#{p}" target="#{comBean.f_selectedUser}" /> 
        <f:param name="area" value="project" /> 
      </p:commandButton> 
     </p:column> 

     <p:column> 
      <p:commandButton action="#{ubean.m_deleteUser}" ajax="false" icon="ui-icon-trash"> 
       <f:setPropertyActionListener value="#{p}" target="#{comBean.f_selectedUser}" /> 
        <f:param name="area" value="project" /> 
      </p:commandButton> 
     </p:column> 

    </p:dataTable> 
     </h:form> 

下面的結果:

image

我如何能適應內容標題列?

+0

我看不到這裏有什麼不對,請說明你的問題 – Kukeltje

+0

列中的值(check + Project Manager ecc ...)與字段名稱(Project Manager)不匹配。每個值(check + name)只能屬於一列。 –

+0

然後,您很可能在columnGroup /和/或其上的colspan有問題。 – Kukeltje

回答

0

您在p:dataTable中正在使用tableStyle="width:auto"
刪除它將使複選框與其各自的列對齊,但您可以注意到列仍然有點偏移。

要解決此問題,您可以在您的複選框p:column上添加style="padding:0px;"
你的代碼看起來像這樣。

<p:dataTable id="i_dtb2" var="p" value="#{comBean.l_uSrcRes}" paginator="true" rows="5" rowsPerPageTemplate="5,10" 
     paginatorPosition="bottom"> 

    // other codes 

    <p:column colspan="6" style="padding:0px;"> 
     // other codes 
    </p:column> 

    // other codes 

</p:dataTable> 


在另一方面,如果你的功能規範允許的話,你可以刪除[項目經理,項目經理副等]頭,因爲你被旁邊的複選框顯示它們。
您必須刪除p:columnGroup並將headerText設置爲它們各自的列,其中您的checkBox列的「角色」爲headerText

希望這會有所幫助。