2013-07-02 52 views
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> 

我不知道如何獲得該項目,其微調變化並更新其值。

我需要幫助,提前致謝。

問候。

回答

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

這樣我就知道微調器的最後價值是什麼,我可以更新我的購物卡RT。

問候。