簡體   English   中英

Wicket單擊復選框時檢索CheckGroup的模型

[英]Wicket Retrieving A CheckGroup's model when clicking a checkbox

我有一個帶有復選框列的表單。

ArrayList<MyObject> myObjectsList = // Load from database ...
ArrayList<MyObject> selectedObjects = new ArrayList<MyObject>();

Form form = new Form("my-form");

CheckGroup<MyObject> myObjectGroup = new CheckGroup<MyObject>("object-check-group", new AbstractReadOnlyModel() {
  @Override
  public Object getObject() {
    return selectedObjects;
  }
});

WebMarkupContainer container = new WebMarkupContainer("table-container");

DataView dataView = new DataView("table-body", new ListDataProvider<MyObject>(myObjectsList)) {
  public void populateItem(final Item item) {
    final MyObject myObject = (MyObject) item.getModelObject();
    item.add(new Check("check-box", item.getModel())); // Checkbox for each item
    // And a couple more columns
  }
};

container.add(dataView);
group.add(container);
form.add(group);
add(form);

現在,我想要的是每當所選對象的數量發生變化時更新表單:

item.add(new Check("check-box", item.getModel()).add(new AjaxEventBehavior("onclick") {
  @Override
  protected void onEvent(AjaxRequestTarget target) {
    selectedObjects = (ArrayList<MyGroup>) myObjectGroup.getModelObject(); // this does not work sadly :(
    // Update form elements
  }
}));

有沒有一種簡單的方法可以用Wicket實現呢?

將AjaxFormChoiceComponentUpdatingBehavior添加到您的檢查組。 每次單擊組中的檢查時,ajax都會觸發。

    myObjectGroup.add(new AjaxFormChoiceComponentUpdatingBehavior() 
    {
        @Override
        protected void onUpdate(AjaxRequestTarget target) 
        {
            //update form elements  
        }         
    }); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM