0

私はショッピング カートを持っています。私のアプリケーションには Datatable があります。その製品の番号を表示するスピナーがあり、スピナーの値が変更されたときにショッピング カートを更新する必要があります。これが私のコードです。

<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 に答える