p:datatable rowkey 没有用 var 解析

Posted

技术标签:

【中文标题】p:datatable rowkey 没有用 var 解析【英文标题】:p:datatable rowkey not resolved with var 【发布时间】:2019-05-19 21:38:32 【问题描述】:

我是 JSF 和 Primefaces 的新手,我正在尝试显示订单的数据表。但无论如何,rowKey 无法解析 var 属性。即使是建议也没有显示 var 字段。实际上,我完全像在 primefaces 展示中那样做。我忘了什么吗?

<h:form>
    <p:dataTable id="orderDT" 
                 var="order" 
                 value="#orderModel.userOrders"
                 selection="#orderModel.tempOrder"
                 selectionMode="single"
                 rowKey="#order.id"
                 style="margin-bottom:0"
                 scrollable="true"
                 scrollHeight="150">

        <f:facet name="header">
            Getätigte Bestellungen
        </f:facet>
        <p:column headerText="Bestellnummer">
            <h:outputText value="#order.id"/>
        </p:column>
        <p:column headerText="Transportnummer">
            <h:outputText value="#order.taId"/>
        </p:column>                    
            </h:outputText>
        </p:column>
        <p:column headerText="Positionen">                           
            <p:dataTable var="pos" value="#order.orderPositions">
                <p:column>
                    <h:outputText value="#pos.grocery.name"/>
                </p:column>
                <p:column>
                    <h:outputText value="Anzahl: #pos.quantity"/>
                </p:column>
            </p:dataTable>
        </p:column>
        <p:column headerText="Betrag">
            <h:outputText value="#order.invoice.amount"/>
        </p:column>

        <f:facet name="footer">
            <p:commandButton title="Bearbeiten" process="orderDT"  />
            <p:commandButton title="Stornieren" process="orderDT"  />
            <p:commandButton title="Rechnung anzeigen" process="orderDT"  />
        </f:facet>

    </p:dataTable>

@Named
@SessionScoped
public class OrderModel implements Serializable 

    private List<GroceryOrder> userOrders;
    private GroceryOrder tempOrder;

    // + getters & setters for userOrders, tempOrder, ...


【问题讨论】:

【参考方案1】:

Rowkey 需要一个字符串,您是否可以输入一个数字?

作为参考,Primefaces 6.2 文档https://www.primefaces.org/docs/guide/primefaces_user_guide_6_2.pdf

【讨论】:

不,行键是一个字符串。我现在注意到,它仍然没有解决,但它现在仍然有效。【参考方案2】:

我现在注意到,它仍然没有解决,但不知何故它仍然有效。您可以完全按照 primefaces 示例进行操作。

【讨论】:

以上是关于p:datatable rowkey 没有用 var 解析的主要内容,如果未能解决你的问题,请参考以下文章

如何从 p:dataTable 本身对 p:dataTable 进行 ajax 更新?

p:p:dataTable中的commandButton

根据 p:dataTable 的每一行中的另一个 p:selectOneMenu 填充 p:selectOneMenu

p:dataTable 中的 SummaryRow 不起作用

p:dataTable 不分页

JSF p:dataTable 的奇怪行为(p:columns 中的第一个条目错误)