我使用的是Primefaces 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>();
}
}
请帮忙吗? :)
答案 0 :(得分:0)
使用listOfSubDepartment.clear();
管理解决此问题