Como renderizar uma aba especifica do rich:tabPanel com AJAX

6 respostas
renanjp

Galera estou apanhando brutamente para um rich:tab
não consigo renderizar apenas uma aba especifica…

O problema é o seguinte:
Ao preencher todos os campos obrigatórios dentro da primeira rich tab devo habilitar a segunda rich tab
Ja tentei de tudo

<rich:tabPanel switchType="client" id="dados" 
		      activeItem="#{acompanharProcessoVisao.selecionaAbaAditivo}">

	<rich:tab header="Iniciar Processo" 
	              name="IniciarProcesso">
		      
                      <div class="field-clear" />
				
                      <ui:include src="/visao/processo/processo_iniciar.xhtml" />
	</rich:tab>
		
       <rich:tab header="Manter Convênio" 
		      name="ManterConvenio"
                      id="ManterConvenio"
					
		      disabled="#{processoVisao.desabilitaAbas or !processoVisao.isConvenio or processoVisao.desabilitaCamposCanceladoTemporario}">
			
                      <div class="field-clear" />
		      <ui:include src="/visao/convenio/convenio_manter.xhtml" />
	
        </rich:tab>
			
</rich:tabPanel>

Quero renderizar a segunda tab “ManterConvenio” devido a condição que está no dissabled… :cry:

alguem saberia ajudar?
Att: Renan Johannsen de Paula

6 Respostas

Rodrigo_Sasaki

Como você está atualizando o tabPanel para habilitar a segunda tab? Está dando render em quem ?

renanjp

nos meus h:inputText eu dei o suporte ajax para eles…

e não consigo renderizar apenas uma richtab
só consegui renderizar tudo que seria o “dados”

<h:inputText value="#{convenioVisao.convenio.contato}"
						 id="contato"
						 styleClass="form-txt"
						 maxlength="100"
						 disabled = "#{processoVisao.desabilitaCamposCancelado}"> 
				<a4j:ajax execute="@this" event="blur" render="btnSalvar" /> // precizo renderizar aqui a segunda tab
</h:inputText>
Rodrigo_Sasaki

você pode tentar adicionar o id do seu richTab na tag render, mas talvez seja necessário renderizar o tabPanel inteiro, não tenho certeza.

renanjp

Então só com o id na tab não renderiza…
e se eu tentar renderizar tudo ele volta na primeira aba…

Já fiz um esquema para tentar setar na mão a aba em que ele está neste momento mas não resolveu
pois ao estar com o foco em um campo com suporte ajax e tentar migrar de aba ele volta na aba do campo…

Rodrigo_Sasaki

você pode setar qual tab quer que seja renderizada, utilizando a propriedade activeItem.

Só que tem um segredo aí, o valor que tem que ser passado, é o atributo name do rich:tab, e não o ID.

renanjp

ja tentei isso tbm…

o problema com essa abordagem é que se eu tiver com o foco em um componente com suporte ajax e tentar mudar de aba, volta na antiga, parece ate praga AAHEHAEHE

tentei tambem esta abordagem nos eventos da richTab: onclick, onheaderclick etc…

ele tem um comportamento estranho…
ao renderizar ele passa setando aba por aba, mesmo que o evento provocado seja de 1 aba apenas…

consequentemente ele sempre vai ficar com o valor da ultima…

Criado 23 de agosto de 2012
Ultima resposta 23 de ago. de 2012
Respostas 6
Participantes 2