【发布时间】:2016-03-13 03:28:04
【问题描述】:
我对 Primefaces 数据表和上下文菜单有疑问。
上下文菜单仅包含一个选项,即删除包含记录的行。
我怎么理解,我需要传递给托管bean的var参数(顺序)?其中包含地图结构中的行数据。
<p:dataTable id="#{id}" var="order" rowIndexVar="rowId" value="#{ordersProvider}" emptyMessage="No more rows" rowKey="#{id}" selectionMode="single">
<p:column headerText="№" filterBy="#{order.id}" filterMatchMode="contains">
<div style="text-align: center;">
<h:outputText value="#{order.id}"/>
</div>
</p:column>
<p:column headerText="№ on site" filterBy="#{order.noticeNumber}" filterMatchMode="contains">
<div style="text-align: center;">
<h:outputText value="#{order.noticeNumber}" />
<f:param name="searchString" value="#{order.noticeNumber}" />
</div>
</p:column>
<p:column headerText="Company" filterBy="#{order.customerName}" filterMatchMode="contains">
<div style="text-align: center;">
<h:outputText value="#{order.customerName}"/>
</div>
</p:column>
<p:column id="col">
<f:facet name="header">
<p:contextMenu for="#{id}">
<p:menuitem value="Delete" update="#{id}" icon="ui-icon-close" action="#{clientOrdersBean.cancel(order)}"/>
</p:contextMenu>
</f:facet>
</p:column>
</p:dataTable>
这是我的 bean 方法,用于删除数据。
public void cancel(OrderBG order){
order.setStatus(OrderStatus.Canceled);
Environment.getInstance().getServiceProvider().getOrderBgService().save(order);
}
问题是,该值通过 - null。我不知道如何从表中获取整行。
有什么建议吗?提前谢谢你。
【问题讨论】:
-
查看 PrimeFaces 展示,了解如何更有效地在 dataTable 中使用 contextMenu……将其与“选择”结合使用。在标题中您谈到了“地图”,但您通过了“OrderBG”?
-
OrderBG - 是当前上下文中的地图(地图数据结构)。
-
你甚至没有回应第一条评论中的大建议......
标签: jsf primefaces managed-bean