Bom dia gente,
Estou usando um p:panelGrid para listar alguns produtos e queria q quando clicar no seu p:commandLink ele abrir o produto em um dialog, mas isso nao está acontecendo o meu selectedProd não está pegando o valor na var do p:panelGrid.
Segue meu codigo:
Na index.xhtml
<p:dataGrid var="dtProd" value="#{ManagerBean.listaProdutoAll}"
columns="3" rows="9" paginator="true"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate="9,12,15" styleClass="gridProd">
<p:panelGrid columns="1" cellpadding="0" cellspacing="0" styleClass="descProd">
<p:graphicImage value="images/#{dtProd.imagem}" width="260px"
height="200px" />
<h:outputText value="#{dtProd.produto}" />
<h:outputText value="#{dtProd.preco}" />
<p:commandLink update=":frmProduto:infoProduto"
oncomplete="Prodficha.show()">
<h:outputText styleClass="ui-icon ui-icon-search"
style="margin:0 auto;" />
<f:setPropertyActionListener value="#{dtProd}"
target="#{ManagerBean.selectedProd}" />
</p:commandLink>
</p:panelGrid>
</p:dataGrid>
Meu dialog que é chamado:
<h:form id="frmProduto">
<p:dialog header="Cadastro de produto" draggable="true"
widgetVar="Prodficha" visible="false" rendered="true" closable="true"
width="400" maximizable="false" resizable="false" modal="true">
<p:toolbar id="tlbAcoesCadProduto">
<p:toolbarGroup align="left">
<p:commandButton value="Cadastrar" onclick="browser.hide()" />
<p:commandButton value="Cancelar" onclick="Prodficha.hide()" />
</p:toolbarGroup>
</p:toolbar>
<p:growl id="growl" showDetail="true" sticky="false" life="5000" />
<h:panelGrid columns="2" style="margin-bottom:10px" cellpadding="5"
id="infoProduto">
<h:panelGroup>
<p:graphicImage value="images/#{ManagerBean.selectedProd.imagem}" width="260px"
height="200px" />
<h:outputText value="Categoria: "></h:outputText>
<p:inputText name="categoria" id="categoria" size="20"
value="#{ManagerBean.selectedProd.produto}" />
</h:panelGroup>
</h:panelGrid>
</p:dialog>
</h:form>
Meu ManagerBean
package control;
import java.util.ArrayList;
import java.util.List;
import persistence.ProdutoDao;
import entity.Produto;
public class ManagerBean {
private List<Produto> listaProdutoAll;
private List<String> images;
private Produto selectedProd;
public ManagerBean() {
listaProdutoAll = new ArrayList<Produto>();
images = new ArrayList<String>();
selectedProd = new Produto();
}
public List<Produto> getListaProdutoAll() {
try {
listaProdutoAll.clear();
listaProdutoAll = new ProdutoDao().listaAll();
} catch (Exception e) {
e.printStackTrace();
}
return listaProdutoAll;
}
public void setListaProdutoAll(List<Produto> listaProdutoAll) {
this.listaProdutoAll = listaProdutoAll;
}
public List<String> getImages() {
images = new ArrayList<String>();
for(int i=1;i<=12;i++) {
images.add("galleria" + i + ".jpg");
}
return images;
}
public Produto getSelectedProd() {
return selectedProd;
}
public void setSelectedProd(Produto selectedProd) {
this.selectedProd = selectedProd;
}
}
Obrigado.