0

ListGridフィルタエディタを表示に設定しています。通常、フィルターエディターでデータを入力すると、サーバーからデータがフェッチされ、executeFetch(..)メソッドが呼び出されます。

ただし、フィルターのデータを編集した後、このメソッドが呼び出されない場合があります。たとえば、「word」と入力すると、データが表示されListGrid. ます。カーソルを最初の位置に移動し、「one」と入力すると、全体としてフィルタ文字列「oneword が表示されます。この場合、フェッチは実行されず、「古い」データは表示されなくなります。たぶん、resultSet / Criteriaのキャッシュを無効にする必要がありますか?

これが私のListGrid宣言です:

ListGrid grid = new ListGrid();
grid.setCanEdit(false);
grid.setShowFilterEditor(true);
grid.setDataSource(getSource());
grid.setDataPageSize(DATA_PAGE_SIZE);
grid.setFields(gridFields);
4

1 に答える 1

2

より制限された基準で再フェッチするのは非論理的だと思いませんか?説明します:

SmartGWTは、データキャッシュを使用して、クライアント/サーバー接続を最適化し、ネットワークトラフィックを削減します。あなたの例では、データベースに次のものがあるとしましょう。

  • 一言
  • 二つの単語
  • 一文

を入力するwordと、フェッチは次を返します。

  • 一言
  • 二つの単語

これらの値はクライアントにキャッシュされます。

に追加oneするとword、これはより制限の厳しい検索条件であるため、サーバーフェッチの必要はなく、クライアントフィルターのみで結果は次のようになります。

  • 一言
于 2012-05-14T09:15:23.523 に答える