我有一个购物车,在我的应用程序中是一个数据表。我有一个微调器来显示该产品的数量,我希望当微调器值改变时,刷新我的购物车,这是我的代码:
<p:dataTable var="carro" value="#{productoBean.productos}">
<f:facet name="header">
<h:outputText value="Carrito de la Compra" />
</f:facet>
<p:column headerText="Producto">
<h:outputText value="#{carro.producto.nombre}" />
</p:column>
<p:column headerText="Cantidad">
<p:spinner value="#{carro.cantidad}">
<p:ajax listener="#{productoBean.refreshCantidad}" update="@this" />
</p:spinner>
</p:column>
<p:column headerText="Precio/Unidad">
<h:outputText value="#{carro.producto.precioUnidad} €" />
</p:column>
<p:column headerText="Valor">
<h:outputText value="#{carro.valor} €" />
</p:column>
</p:dataTable>
我不知道如何获取微调器的项目更改并更新其值。
我需要帮助,提前致谢。
问候。
答案 0 :(得分:0)
最后我做了:
<p:column headerText="Cantidad">
<p:spinner value="#{carro.cantidad}" valueChangeListener="#{productoBean.updateCantidad}">
<p:ajax event="change" listener="#{productoBean.refreshCantidad(carro)}" update=":formCarrito" />
</p:spinner>
</p:column>
在productoBean.updateCantidad
我有:
public void updateCantidad(ValueChangeEvent event) {
cantidad = (Integer) event.getNewValue();
}
在productoBean.refreshCantidad(carro)
可以看出,carro
是该方法的主题:
public void refreshCantidad(Compra compra) {
carritoBean.addProduct(compra.getProducto(), cantidad);
}
这样我知道微调器的最后一个值是什么,我可以更新我的购物车。
问候。