3

私は道場 1.9gridxを使用しています。グリッドはメモリ ストアで初期化されます。しかし、データが変更されたときにストアを更新しましたが、グリッドに変更が適用されていません。refresh()メソッドはありません( dgrid など)。ただし、次のシーケンスを見つけました。

            grid.model.clearCache();
            grid.model.setStore(store)
            grid.body.refresh()

グリッドにLoading...メッセージが表示されますが、それ以上は何も起こりません。

ただし、ページネーターは正しいページ数を表示しますが、グリッド コンテナーのみが行をレンダリングしていません。

/gridx/tests/test_grid_filter.htmlgridx ソースからのフィルターを使用した例には、同じ問題Loading...があります。メッセージがありますが、データはありません。

最初の質問は、これはバグですか? バグでない場合、データが変更されたので再読み込みする必要があることをグリッドに伝えるにはどうすればよいですか?

4

2 に答える 2

4

私の以前の回答は機能し、賛成票から判断すると、他の人にとっては役に立ちましたが、ストアを再作成する必要のない、はるかに簡単な方法を見つけました。

grid.model.clearCache();
grid.model.store.setData(items)
grid.body.refresh()

主な操作は、キャッシュのクリア、新しいアイテムの設定、ブラウザの強制更新です。

紛らわしいのは、GridX には「store」プロパティがありますが、データを表示するために使用されるオブジェクトではないということです。実際のオブジェクトはモデルに設定されているストアであるため、これを変更する必要があります。

于 2013-10-17T09:27:36.557 に答える
2

このLoading...メッセージは、グリッドを宣言した方法が原因でした。最初の行で、宣言する必要があるcolumnsプロパティを指定しました。structure

更新シーケンスが短すぎます。また、データ ストアを再作成する必要があります。

var storeData = {
    identifier: 'id',
    items: response.items
};
grid.model.clearCache();
storeData.items = data.result
store = new Memory({data: storeData});
grid.model.setStore(store)
grid.body.refresh()
于 2013-07-04T09:31:01.387 に答える