0

我有一个购物车,在我的应用程序中是一个数据表。我有一个微调器来显示该产品的数量,我希望当微调器值发生变化时,刷新我的购物车,这是我的代码:

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

我不知道如何获取微调器更改并更新其值的项目。

请我需要帮助,在此先感谢。

问候。

4

1 回答 1

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);
}

这样我就知道微调器的最后一个值是什么,我可以更新我的购物车。

问候。

于 2013-07-07T10:53:53.120 回答