为什么我的 primefaces dataTable 的列没有呈现?
Why are the columns of my primefaces dataTable are not rendered?
以下 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 模型有行和列。
问候
奥利弗
您不能让列值属性迭代当前行...
根据 PF showcase 中的 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>
在其中填充列模型并在列标记的值属性中对其进行迭代
以下 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 模型有行和列。
问候 奥利弗
您不能让列值属性迭代当前行...
根据 PF showcase 中的 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>
在其中填充列模型并在列标记的值属性中对其进行迭代