为什么我的primefaces dataTable的列没有呈现?

时间:2015-02-04 13:48:18

标签: primefaces datatable

以下p:带有动态列的dataTable:

<p:dataTable value="#{searchMaskBL.getSearchMaskDescription().getRows()}" var="curRow">
    <p:columns value="#{curRow.getColumns()}" var="curColumn">
        <h:outputLabel value="#{curColumn.label} #{curColumn.colonOnRightSide ? ':' : ''}" for="colInputTextId" />
        <h:inputText id="colInputTextId" value="" />
    </p:columns>
</p:dataTable>

使用#{searchMaskBL.getSearchMaskDescription()。getRows()}定义的行的迭代有效,但永远不会调用#{curRow.getColumns()}。此外curRow.columns不起作用。怎么了? ui模型有行和列。

此致 奥利弗

1 个答案:

答案 0 :(得分:2)

您不能让列值属性迭代当前行...

根据PF展示中的columns example,你应该这样(但要适应你的场景:

<p:dataTable id="cars" var="car" value="#{dtColumnsView.cars}" widgetVar="carsTable" filteredValue="#{dtColumnsView.filteredCars}">                   
    <p:columns value="#{dtColumnsView.columns}" var="column" columnIndexVar="colIndex" sortBy="#{car[column.property]}" filterBy="#{car[column.property]}">
        <f:facet name="header">
            <h:outputText value="#{column.header}" />
        </f:facet>
        <h:outputText value="#{car[column.property]}" />
    </p:columns>
</p:dataTable>

填充列模型并在colums标记的value属性中迭代它的位置