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