<p:ajax>+<h:selectOneMenu> não dar update

5 respostas
W

fala galera, estou com um problema bobo mais chato, meu selectonemenu não dar update em uns componentes estáticos quando dou o change nele, mesmo executando o método, alguém ai pode me ajudar?

segue o código:

componente(componentizado):

<h:selectOneMenu id="#{cc.attrs.id}" value="#{cc.attrs.value}" disabled="#{cc.attrs.disabled}"
					 style="width:#{cc.attrs.size};"
					styleClass="selectItem #{cc.attrs.validadores== null ? '' : cc.attrs.validadores}" required="#{cc.attrs.required}" >

					<c:if test="#{!cc.attrs.noSelectLabel}">
						<f:selectItem itemLabel="#{msgSistema.lblSelecione}" itemValue="" />
					</c:if>
					<f:selectItems value="#{cc.attrs.selectItens}"
						itemLabel="#{cc.attrs.itemLabel}" var="item"
						itemValue="#{cc.attrs.itemValue}" />
					<f:converter converterId="selectOneUsingObjectConverter" />

					<p:ajax id="teste" global="true" process="#{cc.attrs.process}" 
						listener="#{cc.attrs.valueChangeListener}" event="change"
						update="#{cc.attrs.update}" />

				</h:selectOneMenu>

implementação do componente:

<comp:comboBox id="fornecedor" process="@this, :formI:div:diplay"
				value="#{mBeanManter.in.exportador}"
				changeListener="true"
				valueChangeListener="#{mBeanManter.renderizaDadosFornecedor}"
				selectItens="#{mBeanManter.fornecedores}"
				label="#{msgInvoice.lblFornecedor}" itemLabel="#{item.nomeFantasia}"
				itemValue="#{item}" entity="true"
				update=":formI:div:diplay, :formI:div:rend" />

parte que deveria ser renderizada que fica abaixo do combo:

<p:outputPanel id="diplay">
					
				<h:panelGrid columnClasses="2" rendered="#{mBeanManter.renderizar}" id="rend">
					
							<h:outputText value="#{msgInvoice.lblNomeExportador}: "
								styleClass="labelFiltro_bold" />
							<h:outputText id="nomeExport" value="nomeExportador"
								styleClass="labelFiltro" />
						
						
							<h:outputText value="#{msgInvoice.lblEndereco}: "
								styleClass="labelFiltro_bold" />
							<h:outputText id="endExport"
								value="#{mBeanManter.bairro}"
								styleClass="labelFiltro" />
				
							<h:outputText value="#{msgInvoice.lblCodePostal}: "
								styleClass="labelFiltro_bold" />
							<h:outputText id="codPostExport"
								value="#{mBeanManter.endereco.bairro}"
								styleClass="labelFiltro" />
						
				</h:panelGrid>	
				
				</p:outputPanel>

método que sim, ele é chamado:

private String bairro;
   private boolean renderizar;
   
   public void renderizaDadosFornecedor() {
		renderizar =  false;
		if (in.getExportador() != null
				&& in.getExportador().getId() != null) {
			renderizar =  true;
			try {
				PessoaJuridica fornecedor = cadastroFacade.getPessoaById(in.getExportador().getId());
				in.setExportador(fornecedor);
				endereco  = new Endereco();
				endereco = fornecedor.getEnderecos().get(0);
				bairro = endereco.getBairro();
				
			} catch (BusinessException e) {
				in.setExportador(null);
				e.printStackTrace();
			}
		}else{
			invoice.setExportador(null);
		}
	}

Grato se puderem me ajudar

5 Respostas

juniorsatanas

So olhei por cima ta usando outputPanel ?

W

estou sim, como eu disse antes o método é executado, mas não acontece o update no output…

W

nothing???

colored

Se eu não me engano, o <p:ajax> só funciona com <p:selectOneMenu> e o <f:ajax> só funciona com <f:selectOneMenu>

Testa ai :smiley:

W

Não funciona sim, tenho outras telas e elas funcionam normalmente, o problema é com essa em especifico, e o problema no caso é somente o maldito update no outputPanel e no panelGrid…

Criado 12 de setembro de 2012
Ultima resposta 12 de set. de 2012
Respostas 5
Participantes 3