如何使用primefaces在每列中创建一个具有可变行数的表?

时间:2016-11-10 16:17:41

标签: jsf primefaces jsf-2

我正在使用JSF 2.2和Primefaces 6.0;我想创建一个复杂的表,我需要知道如何创建一个表,例如,第一列的每一行,第二列中的许多行。

这是Excel代表:

enter image description here

2 个答案:

答案 0 :(得分:1)

查看Grouping section

<h3>Grouping</h3>
<p:panelGrid style="margin-top:20px">
    <f:facet name="header">
        <p:row>
            <p:column colspan="7">1995-96 NBA Playoffs</p:column>
        </p:row>
        <p:row>
            <p:column colspan="2">Conf. Semifinals</p:column>
            <p:column colspan="2">Conf. Finals</p:column>
            <p:column colspan="2">NBA Finals</p:column>
            <p:column>Champion</p:column>
        </p:row>

    </f:facet>

    <p:row>
        <p:column style="font-weight: bold;">Seattle</p:column>
        <p:column style="font-weight: bold;">4</p:column>

        <p:column rowspan="2" style="font-weight: bold;">Seattle</p:column>
        <p:column rowspan="2" style="font-weight: bold;">4</p:column>

        <p:column rowspan="5">Seattle</p:column>
        <p:column rowspan="5">2</p:column>

        <p:column rowspan="11" style="font-weight: bold;">Chicago</p:column>
    </p:row>

    <p:row>
        <p:column>Houston</p:column>
        <p:column >0</p:column>
    </p:row>

    <p:row>
        <p:column colspan="4" styleClass="ui-widget-header">
            <p:spacer height="0"/>
        </p:column>
    </p:row>

    <p:row>
        <p:column style="font-weight: bold;">Utah</p:column>
        <p:column style="font-weight: bold;">4</p:column>

        <p:column rowspan="2">Utah</p:column>
        <p:column rowspan="2">3</p:column>
    </p:row>

    <p:row>
        <p:column>San Antonio</p:column>
        <p:column >2</p:column>
    </p:row>

    <p:row>
        <p:column colspan="6" styleClass="ui-widget-header">
            <p:spacer height="0"/>
        </p:column>
    </p:row>

    <p:row>
        <p:column style="font-weight: bold;">Chicago</p:column>
        <p:column style="font-weight: bold;">4</p:column>

        <p:column rowspan="2" style="font-weight: bold;">Chicago</p:column>
        <p:column rowspan="2" style="font-weight: bold;">4</p:column>

        <p:column rowspan="5" style="font-weight: bold;">Chicago</p:column>
        <p:column rowspan="5" style="font-weight: bold;">4</p:column>
    </p:row>

    <p:row>
        <p:column>New York</p:column>
        <p:column >1</p:column>
    </p:row>

    <p:row>
        <p:column colspan="4" styleClass="ui-widget-header">
            <p:spacer height="0"/>
        </p:column>
    </p:row>

    <p:row>
        <p:column>Atlanta</p:column>
        <p:column >1</p:column>

        <p:column rowspan="2">Orlando</p:column>
        <p:column rowspan="2">0</p:column>
    </p:row>

    <p:row>
        <p:column style="font-weight: bold;">Orlando</p:column>
        <p:column style="font-weight: bold;">4</p:column>
    </p:row>


    <f:facet name="footer">
        <p:row>
            <p:column  colspan="4" style="text-align: right">
                Finals MVP
            </p:column>
            <p:column  colspan="3" rowspan="3">
                Michael Jordan (Chicago)
            </p:column>
        </p:row>

        <p:row>
            <p:column  colspan="4" style="text-align: right">
                Season MVP
            </p:column>
        </p:row>
        <p:row>
            <p:column  colspan="4" style="text-align: right">
                Top Scorer
            </p:column>
        </p:row>
    </f:facet>
</p:panelGrid>

答案 1 :(得分:1)

我没有测试过,但我找到了一个例子:

http://www.primefaces.org/showcase/ui/data/datatable/group.xhtml

<p:dataTable var="sale" value="#{dtGroupView.sales}">
    <f:facet name="header">
        Sales/Profits of Manufacturers
    </f:facet>

    <p:columnGroup type="header">
        <p:row>
            <p:column colspan="1" headerText="items" />
            <p:column colspan="1" headerText="another" />
        </p:row>
        <p:row>
            <p:column rowspan="4" headerText="Manufacturer" />
        </p:row>
    </p:columnGroup>

    <p:column>
        <h:outputText value="#{sale.item1}" />
    </p:column>
    <p:column>
        <h:outputText value="#{sale.rowsOf4}%" />
    </p:column>

</p:dataTable>

很多人对你有帮助吗?