jsf - how to show hide a h:panelgroup while click on a radio button -


i working on problem want show , hide fields under same <td> depending upon user option. condition when user clicks on customer radio button have show input fields related customer , when clicks on seller option radio button have show him seller related information. default displaying panelgroup containing information related customer code follows

<h:panelgroup id="customnerpanel" rendered="#{salebean.salevo.persontype == 1}">   input fields related customer goes here </h:panelgroup> <h:panelgroup id="sellerpanel" rendered="#{salebean.salevo.persontype == 2}">   input fields related seller goes here </h:panelgroup> 

now problem on page load shows me customer panel correct, when change radio button seller radio button should hide custoimer panel , show me seller panel rerendering both panels on change of radio buttons. radiobuttons related code follwos:

<h:selectoneradio id="radiochangetenurebutton" layout="linedirection" value="#{salebean.salevo.persontype}">     <f:selectitem id="customertypeid" itemlabel="for customer" itemvalue="1"  />     <f:selectitem id="sellertypeid" itemlabel="for seller" itemvalue="2" />        <a4j:support event="onclick" action="#{salebean.updatecase}" rerender="customnerpanel,sellerpanel"  /> </h:selectoneradio>  

any ideas?

when rerendering elements result of ajax requests cannot hide component rerendering directly because jsf doesn't send hidden (which rendered attribute evaluates false) component browser , jsf has no idea element should hidden in dom. solve problem create wrapping element , rerender when performing ajax request. approach when response gets browser, html of hidden block missing , not in browser's dom. code should become this:

<h:panelgroup id="panelwrapper">   <h:panelgroup id="customnerpanel" rendered="#{salebean.salevo.persontype == 1}">     input fields related customer goes here   </h:panelgroup>   <h:panelgroup id="sellerpanel" rendered="#{salebean.salevo.persontype == 2}">     input fields related seller goes here   </h:panelgroup> </h:panelgroup> 

and should set id of wrapping component (panelwrapper in case) in rerender attribute of a4j:support.


Comments

Popular posts from this blog

java - Intellij Synchronizing output directories .. -

git - Initial Commit: "fatal: could not create leading directories of ..." -