Как отобразить второе h: selectOneMenu в зависимости от первого h: selectOneMenu? - PullRequest
0 голосов
/ 03 августа 2011

Я использую JSF 2.0 с PrimeFaces.Я использую два <h:selectOneMenu> компонента для представления двух выпадающих меню, и у меня есть следующее функциональное требование:

  • Если пользователь выбирает параметры Гистограмма доступности или В первом раскрывающемся списке появится строка доступности , затем появится второе раскрывающееся меню.

  • Иначе, если пользователь выберет Процент доступности в первом раскрывающемся списке, затемвторой выпадающий список должен быть скрыт.

Как я могу это сделать?

Вот соответствующий фрагмент моего взгляда:

<h:selectOneMenu value="#{bean.availabilityDisplay}" id="Display">
    <f:selectItem itemLabel="-- Select Display-- " itemValue="0"/> 
    <f:selectItems value="#{bean.getMyListDisplays()}"/>
</h:selectOneMenu>

<h:selectOneMenu value="#{bean.frequency}" id="frequency">
    <f:selectItem itemLabel="-- Select Frequency-- " itemValue="0"/> 
    <f:selectItems  value="#{bean.getMyListFrequency()}"/>
</h:selectOneMenu>

Ответы [ 3 ]

0 голосов
/ 05 августа 2011

(как мы обсуждали на форуме PrimeFaces)

Оберните ваш второй элемент внутри панели вывода:

<h:selectOneMenu value="#{bean.availabilityDisplay}" id="Display">
    <f:selectItem itemLabel="-- Select Display-- " itemValue="0"/> 
    <f:selectItems value="#{bean.myListDisplays}"/>
    <f:ajax render="ajaxTarget" />
</h:selectOneMenu>

<p:outputPanel id="ajaxTarget">
    <h:selectOneMenu 
            value="#{bean.frequency}" id="frequency" 
            rendered="#{bean.availabilityDisplay == 2 or bean.availabilityDisplay == 4}">
        <f:selectItem itemLabel="-- Select Frequency-- " itemValue="0"/> 
        <f:selectItems  value="#{bean.myListFrequency}"/>
    </h:selectOneMenu>
</p:outputPanel>
0 голосов
/ 16 августа 2012

http://showcase.richfaces.org/richfaces/component-sample.jsf?demo=ajax&sample=selectsUpdates&skin=blueSky вы можете использовать # {не пустой bean.availabilityDisplay} для свойства рендеринга

0 голосов
/ 04 августа 2011

JSF2 поддерживает ajax, поэтому вы можете прикрепить что-то подобное к первому selectBox

" execute = "@ this" />

...