publicStringmostrarPanelDeData(){if(quantidade>0){setPnlData(adicionarComponentes());this.atualizarPanel=true;}else{this.atualizarPanel=false;}returnnull;}publicHtmlPaneladicionarComponentes(){for(intcontador=1;contador<=this.extensao.getQuantidadeDeParcelas();contador++){//CriaumoutputlabelHtmlOutputLabellblData=newHtmlOutputLabel();//AtribuiidparaooutputlabellblData.setId("lbl_data_"+contador);//AtribuioformparaooutputlabellblData.setFor("form_incluir");//AtribuivalorparaooutputlabellblData.setValue(contador+"Data:"); // Adiciona o label ao panel this.pnlData.getChildren().add(lblData); // Cria um calendar HtmlCalendar cldData = new HtmlCalendar(); // Atribui id para o calendar cldData.setId("cld_data_" + contador); // Adiciona a propriedade required cldData.getAttributes().put("required", Boolean.TRUE); // Adiciona a propriedade requiredMessage cldData.getAttributes().put("requiredMessage", "Favorinformaradata."); // Adiciona a propriedade datePattern cldData.getAttributes().put("datePattern", "dd/MM/yyyy"); // Adiciona a propriedade locale cldData.getAttributes().put("locale", "pt_BR");//Adicionaocalendaraopanelthis.pnlDataVencimento.getChildren().add(cldDataDeVencimento);}returnthis.pnlData;}
O problema agora é que quando seleciono alguma opção no combobox todos os outros campos do formulário ficam vazios
Como resolver isso???
bbmany
Pessoal, ainda não encontrei a solução
Troquei o rich:combobox por um a4j:commandButton mas mesmo assim, ao clicar no botão os outros campos são limpos.
Mas não chega a enviar o form pois tenho campos obrigatórios com exibição de mensagens que não são exibidas.
Qualquer ajuda é sempre bem vinda…
bbmany
Pessoal
Consegui resolver com a4j:commandButton, foi só colocar as propriedades ajaxSingle=“false” e immediate=“true”.
/** * Método responsável por atribuir ao panel um panel com componente * adicionado. */publicvoidadicionarData(){setPnlDatas(adicionarComponentes());this.mostrarBotaoRemover=true;}/** * Método responsável por atribuir ao panel um panel sem o último componente. */publicvoidremoverData(){setPnlDatas(removerComponentes());}/** * Método responsável por remover o último componente inserido no panel. * @return pnlDatas Panel com o componente removido. */publicHtmlPanelremoverComponentes(){if(this.contador>0){this.contador--;this.pnlDatas.getChildren().remove(contador);}if(this.contador==0){this.mostrarBotaoRemover=false;}returnthis.pnlDatas;}/** * Método responsável por adicionar componentes ao panel de assim que é * pressionado o botão Adicionar * @return pnlDatas Panel com os componentes adicionados. */publicHtmlPaneladicionarComponentes(){HtmlPanelGrouppgpComponentes=newHtmlPanelGroup();// Cria um outputlabelHtmlOutputLabellblData=newHtmlOutputLabel();// Atribui id para o outputlabellblData.setId("lbl_data_"+contador);// Atribui o form para o outputlabellblData.setFor("form_incluir");// Atribui valor para o outputlabellblData.setValue((contador+1)+"ª Data: ");// Adiciona o label ao panelpgpComponentes.getChildren().add(lblData);// Cria um labelHtmlOutputLabellblBR=newHtmlOutputLabel();// Adiciona um atributo de escape ao labellblBR.getAttributes().put("escape",Boolean.FALSE);// Atribui id para o labellblBR.setId("lbl_br_"+contador);// Atribui valor para o labellblBR.setValue("<br />");// Adiciona o label ao panelpgpComponentes.getChildren().add(lblBR);// Cria um calendarHtmlCalendarcldData=newHtmlCalendar();// Atribui id para o calendarcldData.setId("cld_data_"+contador);// Adiciona a propriedade requiredcldData.getAttributes().put("required",Boolean.TRUE);// Adiciona a propriedade requiredMessagecldData.getAttributes().put("requiredMessage","Favor informar a data.");// Adiciona a propriedade datePatterncldData.getAttributes().put("datePattern","dd/MM/yyyy");// Adiciona a propriedade localecldData.getAttributes().put("locale","pt_BR");// Adiciona o calendar ao panelpgpComponentes.getChildren().add(cldDataDeVencimento);// Adiciona o label ao panelpgpComponentes.getChildren().add(lblBR);// Cria um richmessageHtmlRichMessagemsgErro=newHtmlRichMessage();// Referencia o inputtext para exibição da mensagemmsgErro.setFor("cld_data_"+contador);// Adiciona a propriedade styleClassmsgErro.getAttributes().put("styleClass","alerta");// Adiciona o message ao panelpgpComponentes.getChildren().add(msgErro);// Adiciona o label ao panelpgpComponentes.getChildren().add(lblBR);// Adiciona o panel group ao panelthis.pnlDatas.getChildren().add(pgpComponentes);// Incrementa o contador de panel groupthis.contador++;// Retorna o panel com o componente adicionado.returnthis.pnlDatas;}
Se alguém souber como resolver utilizando o rich:combobox… Compartilhe