0

私は一種のテーブル (おそらく FlexTable) を作成し、フィルター (任意の文字列) を適用して、その文字列を含まない行を即座に削除できるようにしたいと考えています。同様の質問を確認しましたが、非常に古いものです (3 ~ 4 年前)。

jquery の datatables プラグインで例を確認できます: http://www.datatables.net/

フィルターが必要なだけなので、TextBox と KeyPressHandler を使用して押されたキーを検出し、input.length()>=3 の場合に入力テキストを含む行のみを表示できると思います。

誰もがより良いアイデアやアプローチを持っていますか?

ありがとう。

4

1 に答える 1

3

CellTableまたはを使用することを強くお勧めしDataGridます。ListDataProviderこれらを使用して、フィルタリング用のすべてのロジックを配置できる を関連付けることができます。

より複雑なフィルタリングが必要な場合は、またはカスタムDataListProviderに渡す場所の独自の実装を作成する必要があります。行をフィルタリングするときはいつでも、テーブルから作成して呼び出す必要があります。StringFilter
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>フィルタリングなしですべてのアイテムを含むエクストラを保持できるため、 「フィルタリングを解除」したり、フィルター式を変更したりするときに、フィルターで除外されたアイテムにアクセスできます。

を使用すると、各行とセルを個別に処理する必要があるFlexTableため、この方法は を使用するよりもはるかに効率的です。FlexTable操作が多すぎます。

于 2013-03-06T13:27:58.137 に答える