为什么我的primefaces数据表的列不呈现?

为什么我的primefaces数据表的列不呈现?,primefaces,datatable,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.co

以下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模型有行和列

问候
Oliver

您不能让columns value属性在当前行上迭代

根据PF showcase中的说明,您应该这样做(但根据您的场景进行调整:

<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>


在columns标记的value属性中填充列模型并迭代该模型,但这意味着每行的列数不能不同?列数是动态的,但每行的列数都相同,不是吗?正确…对于某些列,唯一可以得到的是空值,但无法实现差异不同数量的列(从页眉角度看,这也是一个“问题”,如果使用p:panelGrid和colspan和ui:repeat绘制一个由模型驱动的动态标签/输入组件掩码ui