Сделайте multiSelect drop down downvalue значение на основе ввода предыдущего значения p: selectOneMenu - PullRequest
0 голосов
/ 01 марта 2020

Я хочу создать приложение JSF. В приложении у пользователя будет два раскрывающихся списка.

Если пользователь выбирает страну Мексика / значение 3 из первого раскрывающегося списка, тогда он должен выбрать опцию Канкун / значение 6 из мультиселектора. Как это может быть реализованным?

<h:form>
<p:growl id="msgs" showDetail="true" skipDetailIfEqualsSummary="true" />

<p:panel header="Tranfer Destination" style="margin-bottom:10px;">
    <h:panelGrid columns="2" cellpadding="5">
        <p:outputLabel for="country" value="Country: " />
        <p:selectOneMenu id="country" value="#{dropdownView.country}" style="width:150px">
            <f:selectItem itemLabel="Select Country" itemValue="" noSelectionOption="true" />
            <f:selectItems value="#{dropdownView.countries}" />
        </p:selectOneMenu>

        <p:outputLabel for="city" value="City: " />
        <p:multiSelectListbox id="city" value="#{dropdownView.city}" style="width:150px">
            <f:selectItem itemLabel="Select City" itemValue="" noSelectionOption="true" />
            <f:selectItem itemLabel="New York" itemValue="1"> </f:selectItem>
            <f:selectItem itemLabel="Chicago" itemValue="2"> </f:selectItem>
            <f:selectItem itemLabel="Seattle"  itemValue="3">  </f:selectItem>
            <f:selectItem itemLabel="Toronto" itemValue="4"> </f:selectItem>
            <f:selectItem itemLabel="Ontario" itemValue="5"> </f:selectItem>
            <f:selectItem itemLabel="Cancun" itemValue="6"> </f:selectItem>
            <f:selectItem itemLabel="Tijuana" itemValue="7"> </f:selectItem>
        </p:multiSelectListbox>
    </h:panelGrid>

    <p:separator />

    <p:commandButton value="Submit" update="msgs" action="#{dropdownView.displayLocation}" icon="pi pi-check" />
</p:panel>
</h:form>

Список стран заполняется из базы данных

ИМЯ ИМЕНИ

  1. США- C
  2. Канада- N
  3. Мексика - C

Список городов

  • Нью-Йорк (необязательно)
  • Чика go (необязательно) )
  • Сиэтл (опционально)
  • Торонто (опционально)
  • Онтарио (опционально)
  • Канкун [обязательно]
  • Тихуана (опционально) )

Здесь во втором раскрывающемся списке мы проверяем, выбран ли параметр / необходим ли элемент для выбора

Обновление

Я внес необходимые изменения в соответствии с предложением но это не работает.

<h:form>
<p:growl id="msgs" showDetail="true" skipDetailIfEqualsSummary="true" />

<p:panel header="Tranfer Destination" style="margin-bottom:10px;">
<h:panelGrid columns="2" cellpadding="5">
    <p:outputLabel for="country" value="Country: " />
    <p:selectOneMenu id="country" value="#{dropdownView.country}" style="width:150px" required="true" binding="#{country}">
        <f:selectItem itemLabel="Select Country" itemValue="" noSelectionOption="true" />
        <f:selectItems value="#{dropdownView.countries}" />
    </p:selectOneMenu>

    <p:outputLabel for="city" value="City: " />
    <p:multiSelectListbox id="city" value="#{dropdownView.city}" style="width:150px" required="#{not empty param[country.6]}">
        <f:selectItem itemLabel="Select City" itemValue="" noSelectionOption="true" />
        <f:selectItem itemLabel="New York" itemValue="1"> </f:selectItem>
        <f:selectItem itemLabel="Chicago" itemValue="2"> </f:selectItem>
        <f:selectItem itemLabel="Seattle"  itemValue="3">     

 </f:selectItem>
        <f:selectItem itemLabel="Toronto" itemValue="4"> </f:selectItem>
        <f:selectItem itemLabel="Ontario" itemValue="5"> </f:selectItem>
        <f:selectItem itemLabel="Cancun" itemValue="6"> </f:selectItem>
        <f:selectItem itemLabel="Tijuana" itemValue="7"> </f:selectItem>
    </p:multiSelectListbox>
 </h:panelGrid>

<p:separator />

<p:commandButton value="Submit" update="msgs" action="#{dropdownView.displayLocation}" icon="pi pi-check" />
</p:panel>
</h:form>

Опция Cancun / значение 6 требуется только из второго раскрывающегося списка, если пользователь выбирает страну Мексика / значение 3 из первого выпадающего списка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...