PrimeFaces:如何设置p:子表格列的宽度

时间:2015-03-19 13:53:07

标签: java javascript css primefaces xhtml

我有以下结构要在我的页面中呈现:

<p:dataTable value="#{bean.persons}" var="person">
    <p:subTable value="#{person.children}" var="child">
        <f:facet name="header">
            <h:outputText value="Person: #{person.name}" />
        </f:facet>
        <p:columnGroup type="header">
            <p:row>
                <p:column headerText="Name"/>
                <p:column headerText="Years" />
                <p:column headerText="Birth Date" />                
            </p:row>
        </p:columnGroup

        <p:column>
            <h:outputText value="#{child.name}" />
            <h:outputText value="#{child.years}" />
            <h:outputText value="#{child.birthDate}" />
        </p:column>
    </p:subTable
</p:dataTable

我希望它像这样打印:

enter image description here

但不幸的是,即使我改变了宽度&#34;,&#34;样式&#34;或&#34; styleClass&#34; &#34; p:列&#34;中的属性标签,宽度始终通过子表中的行宽分布:

enter image description here

我该如何解决?无论如何,我能解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

将style / styleClass标记放在p:column

<p:columnGroup type="header">

使用Primefaces 5.3,Mojarra 2.2进行测试

<p:dataTable value="#{bean.persons}" var="person">
<p:subTable value="#{person.children}" var="child">
    <f:facet name="header">
        <h:outputText value="Person: #{person.name}" />
    </f:facet>
    <p:columnGroup type="header">
        <p:row>
            <p:column headerText="Name" style="width: 500px"/>
            <p:column headerText="Years" />
            <p:column headerText="Birth Date" />                
        </p:row>
    </p:columnGroup

    <p:column>
        <h:outputText value="#{child.name}" />
    </p:column>
    <p:column>
        <h:outputText value="#{child.years}" />
    </p:column>
    <p:column>
        <h:outputText value="#{child.birthDate}" />
    </p:column>
</p:subTable
</p:dataTable