繁体   English   中英

Wicket自定义过滤器没有下拉表

[英]Wicket custom filter without dropdown table

我想为我的DataTable创建一个自定义过滤器。 我想创建一个按钮,当单击它时,它会更改表的数据。 我知道wicket必须提供的ChoiceFilteredPropertyColumn,但根据我的理解,这是一个下拉过滤器。

我想尝试实现类似下面的图片(Pancakes是可点击的按钮): 示例数据表可单击按钮

有人能指出我正确的方向吗?

那么...... ChoiceFilteredPropertyColumn的超类是FilteredPropertyColumn ,它可以解决这个问题。 否则,您可以始终实现自己的Column,以您喜欢的方式实现IFilteredColumn

看看这里实现的`DataTable'是如何实现的: http//www.packtpub.com/sites/default/files/1605OS-第5章 - 显示在线 - 使用voluTable.pdf

然后,您可以按需要实现下拉按钮过滤器,并使用所选值DataTable过滤。

我通过创建自定义过滤器(只是带有一些标记的面板)解决了这个问题,并将其返回到自定义FilteredPropertyColumn的getFilter方法中。

FilteredPropertyColumn: http//wicket.apache.org/apidocs/1.4/org/apache/wicket/extensions/markup/html/repeater/data/table/filter/FilteredPropertyColumn.html

getFilter方法: http ://wicket.apache.org/apidocs/1.4/org/apache/wicket/extensions/markup/html/repeater/data/table/filter/IFilteredColumn.html#getFilter%28java.lang.String,% 20org.apache.wicket.extensions.markup.html.repeater.data.table.filter.FilterForm 29%

ButtonFilter类:

public class ButtonFilter extends Panel {
     ...
}

在自定义FilteredPropertyColumn类中:

@Override
public Component getFilter(String componentId, FilterForm<?> form) {
    return new ButtonFilter<Y>(componentId, getFilterModel(form), filterChoices);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM