Я использую праймеры SelectOneMenu.
У меня есть эта странная проблема добавления раскрывающегося списка selectonemenu на основе предыдущего выбора.
Чтобы проиллюстрировать мою точку зрения, у меня есть список отделов в раскрывающемся списке selectonemenu, который может выбрать персонал. Нижний раскрывающийся список selectonemenu будет заполнен в зависимости от выбранного значения.
Таким образом, в отделе розничной торговли есть 2 подотдела, отделы магазина и отделы продаж и операций.
В отделе ресторана есть 3 подотдела: кухня, обслуживающий персонал и кассиры. Когда я выбираю отдел ресторана, в этом случае в раскрывающемся списке нижнего меню selectonemenu должны отображаться только Кухня, Обслуживающие команды и Кассиры. См. изображение ниже.
Вместо этого он добавляется к нижнему раскрывающемуся списку 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>();
}
}
Любая помощь, пожалуйста? :)