【发布时间】:2014-09-07 17:28:24
【问题描述】:
我正在使用 primefaces SelectOneMenu。
我有一个奇怪的问题,即根据之前的选择添加 selectonemenu 下拉菜单。
为了说明我的观点,我在 selectonemenu 下拉菜单中有一个部门列表,供员工选择。底部的 selectonemenu 下拉菜单将根据所选值填充。
所以在零售店部门,有 2 个子部门 Store Display 和 Sales and Operations Teams。
餐厅部门有 3 个子部门,即厨房、服务团队和收银员。 当我选择餐厅部门时,在这种情况下,它应该只在底部的 selectonemenu 下拉菜单中显示 Kitchen、Serving Teams 和 Cashiers。见下图。
相反,它添加到底部的 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>();
}
}
有什么帮助吗? :)
【问题讨论】:
标签: jsf primefaces selectonemenu