publicvoidacaoExcluirItem(ItemBoletimitemBoletim){System.out.println("*******EXLUINDO ITEM DA LISTA******");System.out.println(itemBoletim);this.boletim.getItens().remove(itemBoletim);}
Fiz o que vc falou ainda não funcionou, acontece a mesma coisa, coloquei um break point e sempre exclui o primeiro item da tabela não o que eu selecionei.
segue meu codigo:
<h:formid="lista"><p:dataTableid="listas"var="item"value="#{boletimMB.boletim.itens}"widgetVar="carsTable"paginator="true"rows="3"rowsPerPageTemplate="5,10,15"selectionMode="single"><f:facetname="header">ItensBoletim
</f:facet><p:column><f:facetname="header">Data</f:facet><h:outputTextvalue="#{item.data.time}"></h:outputText></p:column><p:columnheaderText="Frete"><h:outputTextvalue="#{item.frete}"><f:convertNumbertype="currency"currencySymbol="R$ "locale="pt_BR"></f:convertNumber></h:outputText></p:column><p:columnheaderText="Custo de Deslocamento"><h:outputTextvalue="#{item.custoDeslocamento}"><f:convertNumbertype="currency"currencySymbol="R$ "locale="pt_BR"></f:convertNumber></h:outputText></p:column><p:columnheaderText="Mão de Obra Tercerizada"><h:outputTextvalue="#{item.maoDeObraTercerizada}"><f:convertNumbertype="currency"currencySymbol="R$ "locale="pt_BR"></f:convertNumber></h:outputText></p:column><p:columnheaderText="refeicao"><h:outputTextvalue="#{item.refeicao}"><f:convertNumbertype="currency"currencySymbol="R$ "locale="pt_BR"></f:convertNumber></h:outputText></p:column><p:columnheaderText="Hospedagem"><h:outputTextvalue="#{item.hospedagem}"><f:convertNumbertype="currency"currencySymbol="R$ "locale="pt_BR"></f:convertNumber></h:outputText></p:column><p:columnheaderText="Documentação"><h:outputTextvalue="#{item.documentacao}"><f:convertNumbertype="currency"currencySymbol="R$ "locale="pt_BR"></f:convertNumber></h:outputText></p:column><p:columnheaderText="Outras Despesas"><h:outputTextvalue="#{item.outrasDespesas}"><f:convertNumbertype="currency"currencySymbol="R$ "locale="pt_BR"></f:convertNumber></h:outputText></p:column><p:column><f:facetname="header"><h:outputTextvalue="Ações"/></f:facet><h:panelGroup><p:commandButtonajax="false"type="push"value="Alterar"action="#{pessoaMB.acaoAbrirAlteracao}"immediate="true"image="ui-icon-pencil"><f:paramvalue="#{item.id}"name="itemId"/></p:commandButton><p:commandButtontype="button"value="Excluir"onclick="confirmDeleteItemBoletim.show()"image="ui-icon-close"ajax="false"><f:setPropertyActionListenertarget="#{boletimMB.ItemBoletimSelecionado}"value="#{item}"/></p:commandButton><p:confirmDialogmessage="Deseja excluir este registro?"showEffect="bounce"hideEffect="explode"header="Confirmação de Exclusão"severity="alert"widgetVar="confirmDeleteItemBoletim"visible="false"appendToBody="true"modal="true"><p:commandButtontype="push"value="Sim"update="lista"oncomplete="confirmDeleteItemBoletim.hide()"actionListener="#{boletimMB.excluirItemBoletim}"image="ui-icon-check"></p:commandButton><p:commandButtonvalue="Não"onclick="confirmDeleteItemBoletim.hide()"type="button"image="ui-icon-close"/></p:confirmDialog></h:panelGroup></p:column><f:facetname="footer"><h:panelGrouplayout="block"style="text-align: center"><p:commandButtonajax="false"id="btnSalvar"action="#{boletimMB.acaoSalvar}"value="Salvar"><!-- <f:ajax execute=":formulario" render=":formulario :formulario:formularioItem"></f:ajax> --></p:commandButton></h:panelGroup></f:facet></p:dataTable></h:form>
Managed Bean
privateItemBoletimitemBoletim=newItemBoletim();publicItemBoletimgetItemBoletimSelecionado(){returnitemBoletim;}publicvoidsetItemBoletimSelecionado(ItemBoletimitemBoletim){this.itemBoletim=itemBoletim;}publicvoidexcluirItemBoletim(ActionEventactionEvent){System.out.println("*******EXLUINDO ITEM DA LISTA******");System.out.println(itemBoletim);this.boletim.getItens().remove(itemBoletim);}
E
ErickRAR
Tente com ajax = true, como coloquei anteriormente.
Também coloque o confirmDialog fora do dataTable, dentro de um <p:dialog>
G
gilmar_rj
Eu fiz o que vc falou tirei a confirmação de dentro da tabela e coloquei dentro de um <p:dialog> da seguinte forma:
<p:dialog><p:confirmDialogmessage="Deseja excluir este registro?"showEffect="bounce"hideEffect="explode"header="Confirmação de Exclusão"severity="alert"widgetVar="confirmDeleteItemBoletim"visible="false"appendToBody="true"modal="true"><p:commandButtontype="push"value="Sim"update=":lista"oncomplete="confirmDeleteItemBoletim.hide()"actionListener="#{boletimMB.excluirItemBoletim}"image="ui-icon-check"></p:commandButton><p:commandButtonvalue="Não"onclick="confirmDeleteItemBoletim.hide()"type="button"image="ui-icon-close"/></p:confirmDialog></p:dialog>
agora ele não esta exluindo os itens, será que fiz alguma coisa de errado?
E
ErickRAR
Cara, se está realmente como falou, não sei como ajudar. Normalmente ou é o f:setPropertyActionListener que as pessoas esquecem, ou o ajax, que alteram para true/false.
G
gilmar_rj
È vou ficar tentando aqui, muito obrigado pela ajuda!