2012-07-18 247 views
2

我是WICKET的新手,並使用PageableListView卡住了。Wicket:檢查CheckGroup沒有得到選定的選項並執行提交操作

對於選擇個別複選框,我使用Check和組選擇CheckGroupSelector

現在儘管使用檢查如果我使用CheckBox我的代碼工作正常,但無法使selectall工作...... 粘貼的代碼作爲參考。的

final CheckGroup<DriveInfo> group = new CheckGroup<DriveInfo>("group", new ArrayList<DriveInfo>()); 
    driveSearchForm.add(group); 
    group.add(new CheckGroupSelector("allSelected")); 
    group.setOutputMarkupId(true); 

    PageableListView<DashboardModel> pageableListView = new PageableListView<DashboardModel>("searchResults", 
      driveDataModel, 50) { 
     private static final long serialVersionUID = 1L; 

     @Override 
     protected void populateItem(ListItem<DashboardModel> item) { 
      DashboardModel model = item.getModelObject(); 
      item.add(new Check("selected", new PropertyModel(model, "selected"))); 
      item.add(new Label("name", item.getModelObject().getName())); 
      item.add(new Label("status", item.getModelObject().getStatus().toString())); 
      item.add(new Label("driveUrl", item.getModelObject().getDriveURL())); 
     } 
    }; 
    pageableListView.setReuseItems(true); 

現在不是

item.add(new Check("selected", new PropertyModel(model, "selected"))); 

如果我使用

item.add(new CheckBox("selected", new PropertyModel(model, "selected"))); 

它的正常工作......但如何,我應該得到全選(即。CheckGroupSelector)也工作。

+2

Wicket需要「Check」組件添加(即使間接)到「CheckGroup」。在你發佈的代碼之後是否有'group.add(pageableListView)'? – 2012-07-18 14:59:12

+0

哈維洛佩茲是正確的。 CheckGroup需要訪問DataView或ListView類(基本上是一個視圖類),以便在單擊「全選」時可以選擇視圖中的所有複選框。 – 2012-07-19 07:21:14

+0

是的,在我發佈的代碼後面有一個group.add(pageableListView)。 – chetan 2012-07-19 13:06:18

回答

2

Check的模型必須包含將插入到CheckGroup列表中的對象,在您的情況下,應該包含一個DriveInfo實例。看起來你正在傳遞一個布爾(選定)值,而不是要選擇的對象。