2013-04-28 97 views
0

我有以下組成部分:如何從SelectOneMenu中的選定項目更新JSF SelectManyListBox項目?

     <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的項目。

請幫幫我

非常感謝!

回答

1

您打算使用<f:ajax>。也許是這樣的:

  <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); 
} 
+0

不能正常工作,非常感謝你,任何其他的想法? – 2013-04-28 01:57:10

+0

得到它的工作謝謝! – 2013-04-28 02:14:01