Senhores,
Estou com o problema que parece ser o mais comum de todos, mas não encontro um solução.
Estou construindo uma tela que tem um form e dentro um p:dataTable, para ter a coluna de edição coloquei um p:commandLink que chama o p:confirmDialog para executar o <p:commandButton id="deleteConfirmation"
Tudo isso funciona, mas não consigo passar o ID de forma nenhuma para o bean
O <p:commandButton id="deleteConfirmation" chama o metodo, mas não pego o ID
<div class="table-responsive">
<h:form id="form">
<p:dataTable id="categoriesTable" var="category" value="#{categoriesView.allinLazyModel}" paginatorPosition="bottom" paginator="true"
paginatorTemplate="{FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown} {CurrentPageReport}"
rowsPerPageTemplate="10,20,50" rows="10" lazy="true" sortBy="#{category.name}"> <p:column headerText="Id" style="width:60px;">
</p:column>
</p:column>
<p:column headerText="#{messages.CategoryFather}" sortBy="#{category.fatherName}" filterBy="#{category.fatherName}" styleClass="text-left">
<h:outputText value="#{category.fatherId} #{category.fatherName}" />
</p:column>
<p:column headerText="#{messages.CategoryOrderDisplay}" sortBy="#{category.orderDisplay}" filterBy="#{category.orderDisplay}" styleClass="text-left">
<h:outputText value="#{category.orderDisplay}" />
</p:column>
<p:column headerText="#{messages.CategoryVisible}" sortBy="#{category.visible}" filterBy="#{category.visible}" styleClass="text-left">
<h:outputText value="#{category.visible}" />
</p:column>
<p:column headerText="Action" styleClass="text-right" style="width:120px;">
<h:link outcome="catalog/change/category" title="#{messages.Edit}">
<i class="btn btn-primary fa fa-pencil"></i>
</h:link>
<p:commandLink icon="fa fa-trash-o" id="category-delete">
<p:confirm header="#{messages.Confirmation}" message="#{messages.Areyousuretoremove}" icon="ui-icon-alert" />
<f:setPropertyActionListener value="#{category.id}" target="#{categoriesRequest.id}" /> <i class="btn btn-danger fa fa-trash-o"></i>
</p:commandLink>
</p:column>
</p:dataTable>
<p:confirmDialog global="true" showEffect="fade" hideEffect="fade" severity="alert">
<p:commandButton id="deleteConfirmation" value="#{messages.Yes}" styleClass="ui-confirmdialog-yes" icon="ui-icon-check"
action="#{categoriesRequest.delete}" />
<p:commandButton value="#{messages.No}" styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
</p:confirmDialog>
</h:form>
</div>
Informações para debug:
* - Só existe um form em todo html
* - categoriesRequest é um bean do tipo @Request
* - Já tentei colocar o p:confirmDialog ou os p:commandButton em outros forms
* - Já tentei colocar o f:setPropertyActionListener no p:commandButton
* - O p:commandLink já foi p:commandButton e mesmo assim não funciona
Estou usando o WildFly 8.x , primefaces-5.2.RC3 e o JSF 2.2.8
Por favor, alguém tem alguma ideia de como fazer isso funcionar?
Atenciosamente,
Paulo Ferreira