【问题标题】:Why are the columns of my primefaces dataTable are not rendered?为什么我的 primefaces 数据表的列没有呈现?
【发布时间】:2015-02-04 13:48:18
【问题描述】:

跟随 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 模型有行和列。

问候 奥利弗

【问题讨论】:

    标签: primefaces datatable


    【解决方案1】:

    您不能让列值属性遍历当前行...

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

    在哪里填充列模型并在列标签的 value 属性中对其进行迭代

    【讨论】:

    • 但这意味着我每行不能有不同数量的列?列的数量是动态的,但对于每一行来说都是一样的,不是吗?
    • 正确...对于某些列,您唯一可以拥有的是空值,但您不能真正不同数量的列(标题明智,这也是一个“问题”
    • 已经用 p:panelGrid 和 colspan 和 ui:repeat 来绘制由模型驱动的动态标签/输入组件掩码 ui
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-27
    • 1970-01-01
    • 2018-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多