2013-04-09 55 views
0

我需要在選擇 DropDownChoice項目後立即更新模型或對象。檢票器:在DropDownChoice項目選擇事件中更新模型

貝婁是我工作的代碼:

add(new ListView[Company]("listCompanies", listData) { 

    override protected def onBeforeRender() { 
     // 
     // ... 
     super.onBeforeRender() 
    } 

    def populateItem(item: ListItem[Company]) = { 
     var company = item.getModelObject() 

     //... 

     val listClients: java.util.List[Client] = clientControler.listClients 


     item.add(new DropDownChoice("clientSelection", listClients,new ChoiceRenderer[Client]("name"))) 

在ListView與公司對象, 的性質選擇DropDownChoice的名稱屬性後,模型 公司將與客戶端進行更新名稱被選中。

我怎樣才能做到這一點?

感謝

回答

7

我認爲你可以重寫onSelectionChanged。但是您還需要重寫wantOnSelectionChangedNotifications以返回true以使其正常工作。像這樣的東西。

DropDownChoice<Client> dropDownChoice = new DropDownChoice("clientSelection", listClients) { 
     @Override 
     protected boolean wantOnSelectionChangedNotifications() { 
      return true; 
     } 

     @Override 
     protected void onSelectionChanged(Object newSelection) { 
      // Do something here when selection is changed 
     } 
    }; 
7

您需要添加更新的行爲:

add(new DropDownChoice<Client>("clientSelection", listClients) 
       .add(new AjaxFormComponentUpdatingBehavior("onchange") { 

        private static final long serialVersionUID = 1L; 

        @Override 
        protected void onUpdate(AjaxRequestTarget target) { 

// update your model here 
// then you need to add model to target 
         target.add(); 
        } 
       })); 
相關問題