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:dataTable 的每一行中的另一个 p:selectOneMenu 填充 p:selectOneMenu