【问题标题】:Dynamically update two JSF PrimeFaces Listboxes动态更新两个 JSF PrimeFaces Listboxes
【发布时间】:2014-10-17 15:17:10
【问题描述】:

我正在 Netbeans 上使用 JSF Primeface 创建一个 Web 应用程序。我想要做的是动态更新两个 selectOneListBox 项目。更具体地说,我想根据我在第一个列表框上单击的值更新第二个列表框上的值。

例如:我有两个数据库,活动和子活动,我想将它们显示在单独的列表框中。活动可以有“音乐、运动、户外、室内等”。我想在第一个列表框中显示这些值。当我单击其中一个时,我想获取与特定活动关联的子活动。因此,在子类别数据库中,有一个子活动列表,每个子活动都有一个与活动数据库中的成员相关联的唯一标识符。当我单击活动列表框上的条目时,我想拉出特定的子活动并将它们显示在第二个列表框上。

我能够从活动数据库中获取值并将它们显示在第一个列表框上:

<p:selectOneListbox value="#{activityController.itemsAvailableSelectOne}">
    <f:selectItems value="#{activityController.items}" var="item"
        itemValue="#{item}" itemLabel="#{item.activityName}"/>
</p:selectOneListbox>

我将如何实现第二个列表框?

【问题讨论】:

    标签: jsf primefaces listbox


    【解决方案1】:

    你可以试试这个:

    你的第一个 selectOneListbox:

    <h:form>
    <p:selectOneListbox value="#{activityController.itemsAvailableSelectOne}" id="listBox1">
       <f:selectItems value="#{activityController.items}" var="item"
        itemValue="#{item}" itemLabel="#{item.activityName}"/>
       <p:ajax listener="#{activityController.itemChange}"
                                update="listBox2" />
    </p:selectOneListbox>
    

    第二:

    <p:selectOneListbox value="#{activityController.subItem}" id="listBox2">
       <f:selectItems value="#{activityController.subItems}" var="item"
        itemValue="#{item}" itemLabel="#{item.activityName}"/>       
    </p:selectOneListbox>
    

    支持 Bean:

    public void itemChange() {
     // load stuff based on selected item
    }
    

    【讨论】:

    • 谢谢,但是如何将listBox1上点击的项目发送到backing bean?
    • 当监听器被触发时,该值将被设置在“listBox1”的“value”属性中,因此在示例中,该值将在“itemsAvailableSelectOne”中可用。
    • 我猜OP的问题是:如何根据activityController.itemsAvailableSelectOne的值填写activityController.subItems?答案是:在&lt;p:ajax&gt; 中使用适当的操作。
    • 所以我试过实现这个,但是当我点击任何东西时什么都没有发生。我最终要做的是将activityController.itemsAvailableSelectOne 更改为activityController.selected。我不知道为什么,但这导致事件触发。
    猜你喜欢
    • 1970-01-01
    • 2012-05-17
    • 2018-12-25
    • 2013-05-11
    • 2014-06-11
    • 1970-01-01
    • 2015-02-28
    • 2012-12-04
    • 2012-07-26
    相关资源
    最近更新 更多