Salve pessoal,
Tenho uma rich:dataTable que abre um rich:contextMenu no evento onRowClick.
Nesse menu pode-se excluir os dados da row selecionada: tentei fazer isso passando um a4j:actionparam que atualiza meu bean com o objeto que deve ser excluído da collection que alimenta a dataTable.
O problema é o seguinte: o meu bean nunca é atualizado pelo a4j:actionparam.
A ação registrada para o rich:menuItem é disparada, mas quando busca o elemento que deve ser excluído, este é sempre null.
O bean funciona corretamente para todas as outras funcionalidades da página e possui apenas métodos simples. Creio que o problema seja mesmo na construção da página.
Segue o trecho do código da minha página:
<rich:panel>
<f:facet name="header">
<h:outputText value="Total Pecuniario" />
</f:facet>
<a4j:form id="principal">
<h:panelGrid columns="2">
<h:column>
<h:outputText value="Dinheiro" />
</h:column>
<h:column>
<h:inputText id="iptDinheiro"
value="#{FechamentoCaixaBean.pageForm.fechamentoCaixa.totalDinheiro}">
<a4j:support event="onblur" reRender="optTotalPecun" />
</h:inputText>
</h:column>
<h:column>
<h:outputText value="Moedas Avulsas" />
</h:column>
<h:column>
<h:inputText id="iptMoedasAvulsas"
value="#{FechamentoCaixaBean.pageForm.fechamentoCaixa.totalMoedaAvulsa}">
<a4j:support event="onblur" reRender="optTotalPecun" />
</h:inputText>
</h:column>
<h:column>
<h:outputText value="Moedas Estoque" />
</h:column>
<h:column>
<h:inputText id="iptMoedasEstoque"
value="#{FechamentoCaixaBean.pageForm.fechamentoCaixa.totalMoedaEstoque}">
<a4j:support event="onblur" reRender="optTotalPecun" />
</h:inputText>
</h:column>
<h:column>
<h:outputText value="Cheques" />
</h:column>
<h:column>
<rich:dataTable
value="#{FechamentoCaixaBean.pageForm.fechamentoCaixa.chequeList}"
var="item" id="tbCheques"
rendered="#{not empty FechamentoCaixaBean.pageForm.fechamentoCaixa.chequeList}">
<rich:column>
<f:facet name="header">
<h:outputText value="Valor" />
</f:facet>
<h:outputText value="#{item.valor}" />
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="Descricao" />
</f:facet>
<h:outputText value="#{item.descricao}" />
</rich:column>
<rich:componentControl event="onRowClick" for="excluirChequeMenu"
operation="show">
<f:param value="#{item}" name="chequeSelecionado" />
</rich:componentControl>
</rich:dataTable>
<rich:contextMenu attached="false"
id="excluirChequeMenu" submitMode="ajax">
<rich:menuItem value="Excluir o cheque '{chequeSelecionado.descricao}'" ajaxSingle="true" reRender="tbCheques">
<a4j:actionparam value="{chequeSelecionado}" assignTo="#{FechamentoCaixaBean.pageForm.chequeExcluir}" />
</rich:menuItem>
</rich:contextMenu>
</h:column>
<h:column />
<h:column>
<a4j:commandButton value="Adicionar Cheque" id="btnAdicionaCheque"
onclick="document.getElementById('formCheques').reset();Richfaces.showModalPanel('modCheques');document.getElementById('formCheques:iptDescCheque').focus();" />
</h:column>
<h:column>
<h:outputText value="Total" styleClass="textoPretoNegrito" />
</h:column>
<h:column>
<h:outputText id="optTotalPecun"
value="#{FechamentoCaixaBean.pageForm.totalPecuniario}"
styleClass="textoPretoNegrito" />
</h:column>
</h:panelGrid>
</a4j:form>
</rich:panel>
Qualquer dica será muito bem vinda!
[]s
Jonas