2014-09-07 4 views
1

Я использую простые элементы SelectOneMenu.Как очистить доступные элементы p: selectOneMenu перед добавлением новых элементов

У меня есть эта странная проблема выпадающего списка selectonemenu, добавленная на основе предыдущего выбора.

Чтобы проиллюстрировать мою мысль, у меня есть список отделов в выпадающем меню selectonemenu, который может выбрать персонал. Выпадающий снизу selectonemenu будет заполнен на основе выбранного значения.

Таким образом, в отделе розничной торговли есть 2 подразделения отдела отображения товаров и продаж и операций.

enter image description here

Отдел ресторана имеет 3 дополнительных отделения, а именно кухня, сервировочные Команды и кассир. Когда я выбираю ресторанный отдел, в этом случае он должен показывать только кухню, обслуживающие команды и кассиры в нижнем раскрывающемся списке selectonemenu. См. Изображение ниже.

enter image description here

Вместо этого, он добавляет к нижней selectonemenu выпадающего списка. Как очистить список, чтобы убедиться, что предыдущий выбор не отображается?

Мои коды.

<p:outputLabel for="department" value="Department: " /> 
         <p:selectOneMenu id="department" value="#{staffBean.department}" style="width:150px"> 
          <p:ajax listener="#{staffBean.onDepartmentChange()}" update="subdepartment" /> 
          <f:selectItem itemLabel="Select Department" itemValue="" noSelectionOption="true" /> 
          <f:selectItems value="#{staffBean.returnDepartment(staffBean.staff.location_staff.type)}" /> 
         </p:selectOneMenu> 
         <p:message for="department" /> 

         <p:outputLabel for="subdepartment" value="Sub Department: " /> 
         <p:selectOneMenu id="subdepartment" value="#{staffBean.subDepartment}" style="width:150px"> 
          <f:selectItem itemLabel="Select Sub Department" itemValue="" noSelectionOption="true" /> 
          <f:selectItems value="#{staffBean.listOfSubDepartment}" /> 
         </p:selectOneMenu> 
         <p:message for="subdepartment" /> 

Это мой код для onDepartmentChange

public void onDepartmentChange() { 

     if(department !=null && !department.equals("")) 
     { 
      listOfSubDepartment = staffSession.getAllSubDepartments(department); 
     } 
     else 
     { 
      listOfSubDepartment = new ArrayList<String>(); 
     } 
    } 

Любая помощь, пожалуйста? :)

ответ

0

Удалось решить эту проблему, используя listOfSubDepartment.clear();

Смежные вопросы