【问题标题】:How to clear available items of p:selectOneMenu before adding new items如何在添加新项目之前清除 p:selectOneMenu 的可用项目
【发布时间】: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


    【解决方案1】:

    通过使用 listOfSubDepartment.clear() 设法解决了这个问题;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-16
      • 1970-01-01
      相关资源
      最近更新 更多