我正在尝试为搜索字段制作过滤器,可以在其中检查多个复选框以选择人们想要搜索的内容。我目前正在尝试使用 CheckGroup 组件执行此操作,但由于我没有提交按钮,我不知道如何检索最新的检查对象。这样做的一个想法是使用 Javascript,在 Javascript 中调用一个函数并检索所有类似的复选框。我目前在 Wicket 中有以下代码。所以我的问题是如何做到这一点,以及是否可以不使用 Javascript 做到这一点。我尝试过使用 AjaxFormChoiceComponentBehaviour 并且有效,但由于它会在选中复选框时发布,所以我认为 JS 会是一个更好的选择。
public Filter(String id) {
super(id);
form = new Form("filterform");
types = resultItemHandlerPool.getTypes();
checkGroup = new CheckGroup<Class<?>>("checkGroup", new PropertyModel<Collection<Class<?>>>(this,"types"));
ListView typesListview = new ListView<Class<?>>("typesList", new PropertyModel<List<? extends Class<?>>>(this,"types")) {
@Override
protected void populateItem(final ListItem<Class<?>> item) {
item.add(new Check<Class<?>>("check", item.getModel()));
item.add(new Label("className", item.getModelObject().getSimpleName()));
}
};
typesListview.setReuseItems(true);
checkGroup.add(typesListview);
form.add(checkGroup);
add(form);
}
public List<Class<?>> getSearchableTypes() {
return types;
}
谢谢和亲切的问候,
梅林