【问题标题】:How to update JSF SelectManyListBox items from selected item in SelectOneMenu?如何从 SelectOneMenu 中的选定项目更新 JSF SelectManyListBox 项目?
【发布时间】:2013-04-21 22:10:53
【问题描述】:

我有以下组件:

                     <h:selectOneMenu id="company" 
                                 value="#{companyController.selected.companyId}" 
                                 onchange="?????????">

                    <f:selectItems value="#{companyController.itemsAvailableSelectOne}"/>
                </h:selectOneMenu>

                <h:outputLabel value="some value" for="locations" />

                <h:selectManyListbox id="locations" >
                    <f:selectItems value="#{companyController.selected.locationCollection}"/>
                </h:selectManyListbox>

每次在 SelectOneMenu 中选择公司时,我都需要更新 SelectManyListBox 中的项目。

请帮帮我

非常感谢!

【问题讨论】:

    标签: java jsf-2


    【解决方案1】:

    您将要使用&lt;f:ajax&gt;。也许是这样的:

                <h:selectOneMenu id="company" 
                                 value="#{companyController.selected.companyId}">
                    <f:ajax event="valueChange" execute="@this" render="@this locations" />
                    <f:selectItems value="#{companyController.itemsAvailableSelectOne}"/>
                </h:selectOneMenu>
    
                <h:outputLabel value="some value" for="locations" />
    
                <h:selectManyListbox id="locations" >
                    <f:selectItems value="#{companyController.selected.locationCollection}"/>
                </h:selectManyListbox>
    

    然后你可以修改你的selected对象setCompanyId方法来更新locationCollection

    public void setCompanyId( long companyId ) {
        this.companyId = companyId;
        // now update your location collection
        this.locationCollection = locationCollectionMap.get( companyId );
    }
    

    【讨论】:

      猜你喜欢
      • 2015-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-12
      • 1970-01-01
      • 1970-01-01
      • 2015-09-03
      • 2011-02-21
      相关资源
      最近更新 更多