selectManyCheckbox到p:dataTable列

时间:2017-06-16 10:38:21

标签: jsf primefaces datatable selectmanycheckbox

我无法在p:dataTable中使用selectManyCheckbox正确查看列的内容。

这是我的.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

如何调整内容到标题列?

1 个答案:

答案 0 :(得分:0)

您在tableStyle="width:auto"中使用p:dataTable 删除它会将复选框与其各自的列对齐,但您可以注意到列仍然有点未对齐。

要解决此问题,您可以在复选框style="padding:0px;"上添加p:column 您的代码看起来像这样。

<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设置为各自的列,其中包含&#34;角色&#34;作为checkBox列的headerText

希望这有帮助。