# <f:ajax> in JSF2.0 Komponente ein- und ausblenden



## thommy.s (12. Apr 2010)

Tach auch,


nachfolgend kommt ein Schnipsel einer Tabelle, in der ich durch einen Ajax-Request in Abhängigkeit von der Auswahl durch RadioButtons (sagt man das so?) in einem anderen Teil der Tabelle eine Tabellenzeile ein- oder ausblenden will.
Hinbekommen habe ich bisher, dass ich Werte in der betreffenden Zeile ändern, nicht jedoch die Zeile selbst verschwinden und wieder auftauchen lassen kann. Der folgende Code zeigt noch die Einstellung "Wert in der Zeile ändern" an. Würde mich freuen, wenn mir jemand weiterhelfen könnte. Vielleicht stell' ich die falschen Fragen an Google, aber bisher war nich viel dabei.



```
<h:form action="sendMe">
	    <h:panelGrid columns="2" styleClass="tables" cellpadding="10" border="1">
                <h:outputText value="Buchung dauerhaft?" />
	   	<h:selectOneRadio value="#{butbean.persistent_booking}" valueChangeListener="#  {butbean.hasRadioChanged}" immediate="true"> 
	   		<f:selectItem itemLabel="ja" itemValue="true"></f:selectItem>
	   		<f:selectItem itemLabel="nein" itemValue="false"></f:selectItem>
	   		<f:ajax render="limited_out limited_in" />
	   	</h:selectOneRadio>	   			
<!-- Die jetzt folgende Zeile (2 Spalten) soll verschwinden oder erscheinen -->
	   	<h:outputText id="limited_out" value="bis auf Weiteres oder Zeitraum" />
	   	<h:inputText id="limited_in" value="#{butbean.persistent_booking}" />
          
   </h:panelGrid>	    
             <h:inputHidden value="but"></h:inputHidden>
             <p/>
             <h:commandButton value="Anforderung Senden!"></h:commandButton>
	    
</h:form>
```



ZuHölf!!!


----------



## thommy.s (13. Apr 2010)

Hat keiner einen klugen Tipp? Wenn euch noch was fehlt, ich noch präzisierende Infos liefern muss (was ich im Moment übersehen hätte), macht aus euren Herzen keine Mördergrube


----------



## JanHH (14. Apr 2010)

Ich kenn zwar nur JSF 1.2 und a4j, aber vermutlich musst Du den zu verschwindenen Elementen noch ein "rendered=..."-Attriut verpassen, welches dann von dem ajax-Request in der entsprechenden backing-bean entsprechend auf true oder false gesetzt wird.


----------



## thommy.s (14. Apr 2010)

Das habe ich versucht, nur funktionierte das leider nicht so.

Wenn das Feld nämlich verschwunden ist, kann auf dieses Attribut - aus welchem Grund auch immer - auch nicht zugegriffen werden. Bin da echt ein wenig ratlos.

Aber vllt. habe ich auch was falsch gemacht. Werde dem noch einmal nachgeh'n...


----------



## JanHH (15. Apr 2010)

```
<h:form action="sendMe">
	    <h:panelGrid columns="2" styleClass="tables" cellpadding="10" border="1" id="meinPanelGrid">
                <h:outputText value="Buchung dauerhaft?" />
	   	<h:selectOneRadio value="#{butbean.persistent_booking}" valueChangeListener="#  {butbean.hasRadioChanged}" immediate="true"> 
	   		<f:selectItem itemLabel="ja" itemValue="true"></f:selectItem>
	   		<f:selectItem itemLabel="nein" itemValue="false"></f:selectItem>
                        <a4j:support event="onchange" action="#{butbean.changeAbc}" reRender="meinPanelGrid" />
	   	</h:selectOneRadio>	   			
<!-- Die jetzt folgende Zeile (2 Spalten) soll verschwinden oder erscheinen -->
	   	<h:outputText id="limited_out" value="bis auf Weiteres oder Zeitraum" rendered="#{butbean.abc}"/>
	   	<h:inputText id="limited_in" value="#{butbean.persistent_booking}"  rendered="#{butbean.abc}"/>
          
   </h:panelGrid>
```

So in etwa..


----------

