Bom dia,
estou utilizando o componente rich modalpanel para gerar telas cadastro e ediçao na mesma página. Esta página é formada por um combobox que mostra os tipos q os brindes podem ser vinculados e o nome do brinde. Ao clicar em editar na datatable esse janela modal será aberta para o usuário editar as configurações daquele brinde que foi selecionado.
Estou com problema para passar os valores clicado para o form modal, e no caso do novo brinde que outro form modal é mostrado na hora que coloco a descrição do brinde que executo o método insertAction() o objeto Transferer do brinde no manage bean está como nulo, é como se nao atribuisse nada ao manage bean.
Quem estiver disposta a ajudar posso dar mais detalhes.
<ui:compositiontemplate="../templates/template_administrativo.xhtml"><ui:definename="titulo"><h:outputTextvalue="CRMv8 - Lista de Brindes"/></ui:define><ui:definename="estiloCss"><linkhref="../css/portal.css"rel="stylesheet"type="text/css"/></ui:define><ui:definename="portal"><tr><tdwidth="100%"height="600"align="center"valign="top"alt=""></td></tr><!-- ============================== PAGINA INICIAL ================================================== --><f:view><rich:panelstyle="width:520px; margin-left:20%;"headerClass="cabecalhoRichPanel"id="painelBrinde"><f:facetname="header"><h:outputTextvalue="Lista de Brindes"/></f:facet><tablewidth="100%"border="0"cellspacing="1"cellpadding="0"><tr><tdwidth="6%"><divalign="center"><a4j:commandLinkid="novolink"immediate="true"title="Criar Novo Brinde"reRender="novoPanel"><h:graphicImagevalue="../img/btnNovo.png"styleClass="botao"/><rich:componentControlfor="novoPanel"attachTo="novolink"operation="show"event="onclick"/></a4j:commandLink></div></td><tdwidth="6%"><divalign="center"><h:outputLinkvalue="listaBrindes.img"title="Fechar"><h:graphicImagevalue="../img/casa.png"style="margin-right: 10px; border:0"/></h:outputLink></div></td><tdwidth="82%"></td><tdwidth="6%"><divalign="center"><h:outputLinkvalue="principal_administracao.img"title="Fechar"><h:graphicImagevalue="../img/btnFechar.png"style="margin-right: 10px; border:0"/></h:outputLink></div></td></tr></table><a4j:form><a4j:keepAlivebeanName="brindeConsultMB"/><rich:dataTablevalue="#{brindeConsultMB.listarBrindes}"var="brindeT"width="400"id="lista"border="0"cellspacing="1"cellpadding="0"align="center"><f:facetname="header"><rich:columnGroup><rich:column><h:outputTextvalue=""/></rich:column><rich:column><h:outputTextvalue="Descrição"/></rich:column><rich:column><h:outputTextvalue="Editar"/></rich:column><rich:column><h:outputTextvalue="Excluir"/></rich:column></rich:columnGroup></f:facet><rich:column><h:graphicImagevalue="/img/pasta.gif"width="15px"height="15px"rendered="#{brindeT.tipoPai}"/><h:graphicImagevalue="../img/gift.png"width="15px"height="15px"rendered="#{brindeT.tipoFolha}"/></rich:column><rich:column><!-- COLUNA DESCRICAO PASTA/BRINDE --><!-- <a4j:form>--><a4j:commandLinkaction="#{brindeConsultMB.listarPastaBrindes}"immediate="true"title="Listar Pasta de Brindes"rendered="#{brindeT.tipoPai}"reRender="lista"><h:outputTextvalue="#{brindeT.dsbrinde}"/></a4j:commandLink><!-- </a4j:form>--><h:outputTextvalue="#{brindeT.dsbrinde}"rendered="#{brindeT.tipoFolha}"/></rich:column><!-- FIM COLUNA DESCRICAO PASTA/BRINDE --><rich:column><!-- COLUNA EDITAR PASTA/BRINDE --><!-- <a4j:form>--><a4j:commandLinkaction="#{brindeUpdateDeleteMB.editarBrinde}"title="Editar Brindes"rendered="#{not brindeT.tipoPai}"reRender="editarDescricao"><h:graphicImagevalue="../img/edit.gif"width="15px"height="15px"styleClass="botao"/><rich:componentControlfor="editar"attachTo="editarlink"operation="show"event="onclick"/></a4j:commandLink><a4j:commandLinkaction="#{brindeUpdateDeleteMB.editarBrinde}"id="editarlink"title="Editar Pasta de Brindes"rendered="#{brindeT.tipoPai}"reRender="editarDescricao"><h:graphicImagevalue="../img/edit.gif"width="15px"styleClass="botao"height="15px"/><rich:componentControlfor="editar"attachTo="editarlink"operation="show"event="onclick"/></a4j:commandLink></rich:column><!-- FIM COLUNA EDITAR PASTA/BRINDE --><rich:column><h:outputLinkvalue="#"title="Excluir Brinde"rendered="#{brindeT.tipoFolha}"><h:graphicImagevalue="../img/btnExcluir.png"width="15px"height="15px"styleClass="botao"/></h:outputLink></rich:column></rich:dataTable></a4j:form></rich:panel></f:view><!-- ============================== FIM PAGINA INICIAL ================================================== --><!-- ============================== Visao Modal EDITAR DA PAGINA =================================== --><rich:modalPanelwidth="650"height="300"id="editar"><f:view><f:facetname="header"><h:panelGroup><h:outputTextvalue="Edição de Brinde"styleClass="topotable"/></h:panelGroup></f:facet><f:facetname="controls"><rich:componentControlfor="editar"attachTo="editarhidelink"operation="hide"event="onclick"/></f:facet><a4j:formid="formEditar"><a4j:keepAlivebeanName="brindeUpdateDeleteMB"/><tablewidth="100%"border="0"cellspacing="1"cellpadding="0"><tr><tdwidth="6%"><divalign="center"><h:commandLinkaction="#{brindeUpdateDeleteMB.updateAction}"title="Salvar"immediate="true"><h:graphicImagevalue="../img/btnSalvar.png"styleClass="botao"/></h:commandLink></div></td><tdwidth="6%"><divalign="center"><h:commandLinkaction="#{brindeUpdateDeleteMB.clearAction}"immediate="true"><h:graphicImagevalue="../img/btnLimpar.png"styleClass="botao"/></h:commandLink></div></td><tdwidth="82%"></td><tdwidth="6%"><divalign="center"><h:outputLinkvalue="listaBrindes.img"onclick="#{rich:component('editar')}.hide()"title="Fechar"><h:graphicImagevalue="../img/btnFechar.png"style="margin-right: 10px; border:0"/></h:outputLink></div></td></tr></table><rich:panelheader="Editar Brinde"><h:panelGridcolumns="1"><h:outputTextvalue="Vículado a:"/><h:selectOneMenuid="cmbVinculos"value="#{brindeUpdateDeleteMB.brindeT.idbrinde}"><f:selectItemsvalue="#{brindeUpdateDeleteMB.itens}"/></h:selectOneMenu><h:outputTextvalue="Descricao"/><h:inputTextvalue="#{brindeUpdateDeleteMB.brindeT.dsbrinde}"id="editarDescricao"rendered="true"immediate="true"/></h:panelGrid></rich:panel></a4j:form></f:view></rich:modalPanel><!-- ============================== FIM Visao Modal EDITAR DA PAGINA =================================== --><!-- ============================== Visao Modal NOVO DA PAGINA =================================== --><rich:modalPanelwidth="650"height="300"id="novoPanel"><f:view><f:facetname="header"><h:panelGroup><h:outputTextvalue="Inserção de Brinde"styleClass="topotable"/></h:panelGroup></f:facet><f:facetname="controls"><rich:componentControlfor="novo"attachTo="hidelink"operation="hide"event="onclick"/></f:facet><a4j:form><tablewidth="100%"border="0"cellspacing="1"cellpadding="0"><tr><tdwidth="6%"><divalign="center"><a4j:commandLinkaction="#{brindeInsertMB.insertAction}"ignoreDupResponses="true"><h:graphicImagevalue="../img/btnSalvar.png"styleClass="botao"/></a4j:commandLink></div></td><tdwidth="6%"><divalign="center"></div></td><tdwidth="82%"></td><tdwidth="6%"><divalign="center"><h:outputLinkonclick="#{rich:component('novo')}.hide()"value="listaBrindes.img"title="Fechar"><h:graphicImagevalue="../img/btnFechar.png"style="margin-right: 10px; border:0"/></h:outputLink></div></td></tr></table><rich:panelheader="Novo Brinde"><h:panelGridcolumns="1"><h:outputTextvalue="Vículado a:"/><h:selectOneMenuid="cmbVinculosNovo"value="#{brindeInsertMB.brindeTPai.idbrinde}"><f:selectItemsvalue="#{brindeInsertMB.itens}"/></h:selectOneMenu><h:outputTextvalue="Descricao"/><h:inputTextvalue="#{brindeInsertMB.brindeT.dsbrinde}"size="30"/></h:panelGrid></rich:panel></a4j:form></f:view></rich:modalPanel><!-- ============================== FIM Visao Modal NOVO DA PAGINA =================================== --></ui:define></ui:composition>
T
thiagofmam
Manage Bean Insert:
publicclassBrindeInsertMBextendsManagerBeanbase{// Atributos e propriedadesprivateBrindeTbrindeT=newBrindeT();privateBrindeTbrindeTPai;privateSeg_loginTlogin=null;privateList<SelectItem>itens=newArrayList();publicvoidsetBrindeT(BrindeTbrindeT){this.brindeT=brindeT;}publicBrindeTgetBrindeT(){returnbrindeT;}/** * Instancia a classe da regra de neg?cio */publicBrindeBLgetBusinessClass()throwsException{setLogin((Seg_loginT)getSession().getAttribute(SystemBusinessBaseAdministrativo.LOGIN_SESSION));return(BrindeBL)BusinessBase.getBusinessFactory(login.getCdlogin(),"br.com.imagemempresarial.bl.BrindeBL");}// M?todos de EventospublicStringinsertAction()throwsException{try{BrindeBLclassBL=getBusinessClass();brindeTPai=(BrindeT)FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get("brindeT");brindeT.setFlativo(1);brindeT.setIdbrindevinculado(brindeTPai.getIdbrinde());brindeT.setIdempresa(login.getIdempresa());classBL.insert(brindeT);clearAction();}catch(Exceptione){e.printStackTrace();}returnnull;}publicStringclearAction()throwsException{brindeT=newBrindeT();returnnull;}publicSeg_loginTgetLogin(){returnlogin;}publicvoidsetLogin(Seg_loginTlogin){this.login=login;}publicList<SelectItem>listaBrindeVinculado()throwsException{try{BrindeBLbrindeBL=getBusinessClass();if(brindeT==null||brindeT.getDsbrinde()==null){brindeT=newBrindeT();brindeT.setIdbrindevinculado(-1);}brindeT.setIdempresa(login.getIdempresa());brindeT.setFlativo(1);List<BrindeT>listTemp=brindeBL.getListaBrinde(brindeT);itens.add(newSelectItem("----Tipo Vinculado---",null));for(inti=0;i<listTemp.size();i++)itens.add(newSelectItem(listTemp.get(i).getIdbrinde(),listTemp.get(i).getDsbrinde()));setItens(itens);returnitens;}catch(Exceptione){// TODO: handle exceptione.printStackTrace();System.out.println("Erro ao listar");returnnull;}}publicList<SelectItem>getItens()throwsException{if(itens.isEmpty())listaBrindeVinculado();returnitens;}publicvoidsetItens(List<SelectItem>itens){this.itens=itens;}publicBrindeTgetBrindeTPai(){returnbrindeTPai;}publicvoidsetBrindeTPai(BrindeTbrindeTPai){this.brindeTPai=brindeTPai;}}
lionels
dae cara conseguiu resolver o problemas ? é um erro de javascript não é …
eu testei um componente do richfaces chamado <rich:componentControl > mas nã tive sucesso .
dae uma luz ae…
G
guimoz
eu tive um problema parecido, use o ajaxkeys na datatable, ele serve como indexador da tabela… um exemplo
ou vc pode passar parametros na tabela, com o valor da chave por exemplo, e chamar um metodo no botao de abrir o modal, que pegue o valor do parametro e atribua ao objeto correto.
n tive mto tempo pra olhar o seu codigo, mas em ambos os casos, é necessario que voce chame um metodo para popular os objetos q serao exibidos no modal…
febatata
Cara. Acho que é um pouco tarde.
Mas pelo que pude perceber… o erro está nesse monte de a4j:form que voce colocou!