0

我想做一种表格(可能是 FlexTable)并能够应用过滤器(任何字符串)并立即删除不包含该字符串的行。我检查了类似的问题,但它们已经很老了(3-4 年前)。

您可以在 jquery 的数据表插件中看到一个示例:http ://www.datatables.net/

我只需要过滤器,所以我想我可以使用 TextBox 和 KeyPressHandler 来检测按下的键,并且仅在 input.length()>=3 时显示包含输入文本的行。

有人有更好的想法或方法吗?

谢谢。

4

1 回答 1

3

我强烈建议使用 aCellTable或 a DataGrid。有了这些,您可以关联一个ListDataProvider,您可以在其中放置所有过滤逻辑。

如果您想要更复杂的过滤,您应该创建自己的实现来DataListProvider传递 aString或自定义的位置。每当您想过滤行时,您都Filter需要从表中创建并调用它。
filter(String filterExpression)

public class MyListDataProvider<T> extends DataListProvider<T>{

    public void filter(String filterExpression){

         // Here you filter your local list containing the data use
         List<T> list = getList();

         ...

         // Refresh all of the objects associated to this ListDataProvider
         refresh();

    }

}

您可以保留一个包含所有项目的额外List<T>内容而不进行任何过滤,以便在您想要“取消过滤”或更改过滤器表达式时访问过滤掉的项目。

这种方法比使用 a 更有效,FlexTable因为FlexTable您必须单独浏览每一行和单元格。太多的操纵。

于 2013-03-06T13:27:58.137 回答