Vou ser mais objetivo…
Essa é minha ultima coluna do DataTable principal, no caso a “vitrine” onde mostra todos o produtos
<p:column>
<h:commandButton image="../ref/imgs/carrinho.png" title="Adicionar ao Carrinho">
<p:ajax event="click" update=":form:dtb" listener="#{vendaMB.addCarrinho}"/>
</h:commandButton>
</p:column>
O objetivo desse botão seria executar o metodo do MBean pra adicionar os dados da linha em outra DataTable, o id: ‘dtb’ do parametro update do <p:ajax/>
é o id da dataTable que estar recebendo essa lista Carrinho, só que obviamente ao clicar no botão é adicionado apenas uma linha em branco, minha duvida seria
como vou informa via ajax que é ‘aquela linha’(aquele produto) que quero adicionar na lista?
DataTable que esta recebendo a lista
<p:dataTable id="dtb" var="pdr" styleClass="datatable2" value="#{vendaMB.carrinho}">
<f:facet name="header">
Seu carrinho
</f:facet>
<p:column headerText="Produto">
<h:outputText value="#{pdr.nome}" />
</p:column>
<p:column headerText="Preço">
<h:outputText value="#{pdr.preco}" />
</p:column>
<p:column headerText="Quantidade">
</p:column>
<f:facet name="footer">
<p:commandButton value="Finalizar Compra">
</p:commandButton>
</f:facet>
</p:dataTable>
MBean
public class VendaMB {
private Produto produto;
private List<Produto> carrinho;
public VendaMB() {
super();
this.produto = new Produto();
this.carrinho = new ArrayList<Produto>();
}
public void addCarrinho(AjaxBehaviorEvent event){
this.carrinho.add(produto);
produto = new Produto();
}
[...]
Detalhe: se eu tiver me equivocado na ultilização de algum parametro ajax, não reparem pq ainda to entendendo o funcionamento do ajax na nativo jsf e do primeFaces…
Agradeço desde já, Abraço