a4j:support atualiza todo o form ñ só componente

Boa tarde amigos.

Tenho um h:selectOneMenu q dependendo da escolha deveria atualizar (habilitar ou ñ) só um h:inputText via a4j:support mas esta atualizando td o form. =S

Já fiz com a4j:region, só o imput e td mais mas nada deu resultado, ele sempre manda atualizar todo o form.

Estou usando o jsf 1.2 + facelets 1.1.14, richfaces 3.3.0.

Já li alguns relatos aq no guj e no javasf mas o problemas dos colegas foram resolvido com region e/ou panelGrid e a atualização só ocorria ou ñ para um componete.

Se alguém tiver alguma ideia da solução ficarei muito feliz em testá-la… =D

Muito obrigado.
[]'s

...
<h:selectOneMenu id="tipos" value="#{defaultBean.tipo}" required="true">
   <f:selectItem itemValue="Tipo 1"/>
   <f:selectItem itemValue="Tipo 2"/>
   <a4j:support event="onchange" ajaxSingle="true" reRender="tipo_form"/>
</h:selectOneMenu>

<h:outputLabel for="tipo_2" value="Dados "/>
<h:panelGrid id="tipo_form">
   <h:inputText id="tipo_2" value="#{defaultBean.tipoDados}" size="22"
                required="false" disabled="#{defaultBean.tipo == 'Tipo 1'}">
      <f:validateLength maximum="17" minimum="15"/>
   </h:inputText>
</h:panelGrid>
...

Cara…

Na propriedade reRender voce precisa colocar o que quer atualizar… no caso o InputText tipo_2.

Então, o correto seria reRender=“tipo_2”

Caso seja mais de um ítem, você separa por virgula

Espero ter ajudado.

Abs

valeu pela ajuda joaopaulo.cardozo… :slight_smile:

mas já tentei desta forma. alias, foi minha primeira tentativa pois é assim q está no exadel mas infelizmente o resulta ñ está sendo o esperado… :cry:=(

por favor, se alguém souber qual é o “pulo do gato”, sou todo ouvidos… :smiley:

muito obrigado.

[]'s

baum, se algum bem intensionada ainda estiver acompanhado este post :?:

do selectOnMenu em questão:

<h:selectOneMenu id="tipos" value="#{defaultBean.tipo}" required="true">   
   <f:selectItem itemValue="Tipo 1"/>   
   <f:selectItem itemValue="Tipo 2"/>   
   <a4j:support event="onchange" ajaxSingle="true" reRender="tipo_form"/>   
</h:selectOneMenu> 

tá sendo enviado ao navegador:

<select id="formOutputPanel:tipos" name="formOutputPanel:tipos" size="1" onchange="A4J.AJAX.Submit('_viewRoot','formOutputPanel',event,{'control':this,'similarityGroupingId':'formOutputPanel:j_id166','parameters':{'formOutputPanel:j_id166':'formOutputPanel:j_id166','ajaxSingle':'formOutputPanel:tipos'} ,'actionUrl':'/AcAJ/faces/pages/ajCRUD.xhtml'} )">

como pode-se ver, ele ñ estão solicitando o atualização do componete solicitado mas sim do form principal :roll:

alguém sabe oq fazer para corrigir isso ou oq estou fazendo d errado??? :?: :?: :?:

muito obrigado a tds…

[]'s
t++

alguém?

alguém?!

apesar de aparentemente ñ ter nenhuma semelha nos assuntos, localizei outros post com o msm problema q estou tendo:

http://www.guj.com.br/java/127882-jsfa4j---nao-passa-valor-pro-managedbean-nem-a-pau
e
http://www.guj.com.br/java/126387-problema-a4j-#682888

fiz td qto é tipo de alteração com e sem a4j:region e ajaxSingle mas nada resolveu meu problema ainda… :cry:

“JESUS ACENDE A LUZ!!!”

de qq forma vou continuar postando aq.

estou tentando qq coisa e qdo resolver o problema vou postar aq pois certamente ira ajudar outros. :slight_smile:

kd a ação do a4j:support??

segui o exemplo do EXADEL assim ñ coloquei nada.

a ação em si deveria ser só a (des)habilitação do outro input, é necessário um ação explícita?

obrigado pela ajuda! :smiley:

Já tentou assim?

&lt;h:selectOneMenu id="tipos" value="#{defaultBean.tipo}" required="true"&gt;  
   &lt;f:selectItem itemValue="Tipo 1"/&gt;  
   &lt;f:selectItem itemValue="Tipo 2"/&gt;  
   &lt;a4j:support event="onchange" ajaxSingle="true"/&gt;  
&lt;/h:selectOneMenu&gt;  
  
&lt;h:outputLabel for="tipo_2" value="Dados "/&gt;  
&lt;a4j:outputPanel id="tipo_form" ajaxRendered="true"&gt;  
   &lt;h:inputText id="tipo_2" value="#{defaultBean.tipoDados}" size="22"  
                required="false" disabled="#{defaultBean.tipo == 'Tipo 1'}"&gt;  
      &lt;f:validateLength maximum="17" minimum="15"/&gt;  
   &lt;/h:inputText&gt;  
&lt;/a4j:outputPanel&gt; 

valeu pela ajuda raf4ever… :smiley:

intaum, coloquei o action e ñ resolveu… :x

tb testei teu opção com a4j:outputPanel e nada… :evil:

ñ sitei anteriormente mas estou usando o “modelo de layout” do rpontes e nela temos isso no template principal:

<html>
...
   <div id="right">
      <a4j:outputPanel id="contentOutputPanel" ajaxRendered="true">
         <a4j:form id="formOutputPanel" reRender="false" ignoreDupResponses="true" ajaxSubmit="true">

            <!-- bloco de pesquisa --> 
            <a4j:outputPanel id="searchlistBlock" style="text-align: center; font-size:  10px;" rendered="#{defaultBean.pesquisarState}" >
               <ui:insert name="searchlistBlock">
               </ui:insert>
            </a4j:outputPanel>

            <!-- bloco de edição -->
            <a4j:outputPanel id="addUpdateBlock" rendered="#{defaultBean.adicionarState or defaultBean.editarState}">
               <ui:insert name="addUpdateBlock">
               </ui:insert>
            </a4j:outputPanel>
         </a4j:form>
      </a4j:outputPanel>
   </div>
   ...
</html>

meu código problemático tá dentro do bloco de edição. o engraçado e q, como sitei num post anterior, ele solicita a atualização do “formOutputPanel” no código javascript e ñ o componente solicitado no .xhtml.

<select id="formOutputPanel:tipos" name="formOutputPanel:tipos" size="1" onchange="A4J.AJAX.Submit('_viewRoot','formOutputPanel',event,{'control':this,'similarityGroupingId':'formOutputPanel:j_id166','parameters':{'formOutputPanel:j_id166':'formOutputPanel:j_id166','ajaxSingle':'formOutputPanel:tipos'} ,'actionUrl':'/AcAJ/faces/pages/ajCRUD.xhtml'} )">  

muito obrigado pela ajuda raf4ever!!!
se tiver alguma ideia, sou “todo ouvidos”. :wink:
[]'s

[quote=Charles]valeu pela ajuda raf4ever… :smiley:

intaum, coloquei o action e ñ resolveu… :x

tb testei teu opção com a4j:outputPanel e nada… :evil:

ñ sitei anteriormente mas estou usando o “modelo de layout” do rpontes e nela temos isso no template principal:

<html>
...
   <div id="right">
      <a4j:outputPanel id="contentOutputPanel" ajaxRendered="true">
         <a4j:form id="formOutputPanel" reRender="false" ignoreDupResponses="true" ajaxSubmit="true">

            <!-- bloco de pesquisa --> 
            <a4j:outputPanel id="searchlistBlock" style="text-align: center; font-size:  10px;" rendered="#{defaultBean.pesquisarState}" >
               <ui:insert name="searchlistBlock">
               </ui:insert>
            </a4j:outputPanel>

            <!-- bloco de edição -->
            <a4j:outputPanel id="addUpdateBlock" rendered="#{defaultBean.adicionarState or defaultBean.editarState}">
               <ui:insert name="addUpdateBlock">
               </ui:insert>
            </a4j:outputPanel>
         </a4j:form>
      </a4j:outputPanel>
   </div>
   ...
</html>

[/quote]
Esse negócio de manter estado da tela no MB é dor de cabeça muita… :lol:

tô quase usando a celebre frase do Conrado, amigo do Fudêncio: “eu só me fd nesta mer*a!”… :lol:

dq qq forma valeu pela força raf4ever… :slight_smile:

se resolver essa inhaca vou colocar aq a solução.