我是 wicket 的新手,我根本不知道 jQuery。我使用检票口 6.9.0。我需要将选择/取消选择所有复选框添加到检票口 DataTable。我已经阅读并实施了“Apache Wicket Cookbook”中的示例,您可以在Apache Wicket Cookbook 的第 28 页上看到它。第 5 章 但取消全选不起作用。我在这里也读过建议:http: //evanchooly.com/logs/%23%23wicket/2011-08-31
问题是 - 我不知道如何通过 Check*Selector 或以某种方式实现它。谁能帮我举一个简单有用的例子?
** 更新:**
正如@svenmeier 在评论中所写。我正在尝试添加 checkgroupselector 以选择所有复选框,并且我执行了以下操作:
Form form = new Form("form");
CheckGroup group = new CheckGroup("group");
group.add(new CheckGroupSelector("groupselector"));
DataTable sourceTable = new DataTable("mytable", getColumns(), getDataProvider(), 10);
sourceTable.setOutputMarkupPlaceholderTag(true);
group.add(sourceTable);
add(form);
form.add(group);
private List getColumns() {
List<IColumn<MyItem, String>> ret = Lists.newArrayList();
ret.add(new AbstractColumn<MyItem, String>(new Model<>("")) {
@Override
public void populateItem(Item<ICellPopulator<MyItem>> cellItem, String componentId, IModel<MyItem> rowModel) {
CheckBoxPanel checkBoxPanel = new CheckBoxPanel(componentId);
cellItem.add(checkBoxPanel);
}
});
...
}
<span wicket:id="group">
<input type="checkbox" wicket:id="groupselector">check/uncheck all</input>
<table wicket:id="mytable">[Lookup Results]</table>
</span>
要将 CheckBox 添加到 DataTable 我必须使用面板,所以我有以下内容:
public class CheckBoxPanel extends Panel {
private CheckBox field;
public CheckBoxPanel(String id, IModel<Boolean> model) {
super(id);
field = new CheckBox("checkBox", model);
add(field);
}
public CheckBoxPanel(String id) {
this(id, new Model<Boolean>());
}
public CheckBox getField() {
return field;
}
}
在 CheckBoxPanel.html 中
<body>
<wicket:panel xmlns:wicket="http://wicket.apache.org">
<input type="checkbox" wicket:id="checkBox">
</wicket:panel>
</body>
实际上它确实显示了检查组,但在我的表格下并且选中/取消选中它不会影响它下面的复选框。我在这里做错了什么?