我想为我的DataTable创建一个自定义过滤器。我想创建一个按钮,当单击它时,它会更改表的数据。我知道wicket必须提供的ChoiceFilteredPropertyColumn,但根据我的理解,这是一个下拉过滤器。
我正在努力实现类似下面的图片(Pancakes是可点击的按钮):
有人能指出我正确的方向吗?
答案 0 :(得分:1)
嗯...... ChoiceFilteredPropertyColumn的超类是FilteredPropertyColumn,这可能就是诀窍。否则,您可以始终实现自己的列,以您喜欢的方式实现IFilteredColumn。
答案 1 :(得分:1)
看看实现的`DataTable'在这里:http://www.packtpub.com/sites/default/files/1605OS-Chapter-5-Displaying-Data-Using-DataTable.pdf
然后,您可以按照自己的意愿实现下拉按钮过滤器,并使用所选值DataTable
进行过滤。
答案 2 :(得分:0)
我通过创建自定义过滤器(只是带有一些标记的面板)解决了这个问题,并将其返回到自定义FilteredPropertyColumn的getFilter方法中。
FilteredPropertyColumn: http://wicket.apache.org/apidocs/1.4/org/apache/wicket/extensions/markup/html/repeater/data/table/filter/FilteredPropertyColumn.html
ButtonFilter类:
public class ButtonFilter extends Panel {
...
}
在自定义FilteredPropertyColumn类中:
@Override
public Component getFilter(String componentId, FilterForm<?> form) {
return new ButtonFilter<Y>(componentId, getFilterModel(form), filterChoices);
}