自动生成标头p:p:dataTable的columnGroup

时间:2017-06-08 20:38:49

标签: jsf primefaces datatable

这个问题是关于p:dataTable标头操作。

我想找到一种直接从java代码操作头文件p:dataTable(primefaces)的方法,做一下这样的事情:

<p:dataTable id="genericReport" value="#{mb.lazyData}" > 

        <!-- header -->
        <p:columnGroup type="header" binding="#{mb.header}" >
        </p:columnGroup>


        <!-- some data  -->
        <p:column>
            <h:outputText value="..." />
        </p:column> 

</p:dataTable>

其中#{mb.header}“是从XML读取的java代码,由树通过XPath操纵。

我想这样做,因为我有很多带有复杂标题的报告;我的意思是,不同的水平,不同的细胞结合。

更新

标题可能包含很多行,而不仅仅是一行。这是一个表的示例。 enter image description here

此标头必须由xml配置生成。这是XML。

<header id="report">
        <column text="Granpa Pather">

                <column text="Pather 1">
                        <column text="Child 1">
                                <column text="Grand Child 1" />
                                <column text="Grand Child 2" />
                        </column>
                        <column text="Child 2" />
                        <column text="Child 3" />
                </column>

                <column text="Pather 2">
                        <column text="Child 4" />
                        <column text="Child 5" />
                </column>

                <column text="Pather 3">
                        <column text="Child 6" />
                        <column text="Child 7" />
                        <column text="Child 8" />
                </column>

        </column>
</encabezado

colspan和rowspan是通过树理论计算的,不是问题。

我使用XPath和树操作在PDF和XLS(Itext和ApachePOI,尊重)中做到这一点。我的问题在于HTML操作起来并不容易。我认为可以使用API​​ Primefaces。

0 个答案:

没有答案