2

私は長い間それを探していました、そして(私自身の観点から)これはずっと前に行われるべきであった基本的な振る舞いです:あなたは列によってグリッドをソートします、例えば " NAME"、レコードを変更すると、名前「AAA」が「ZZZ」になり、サーバーに送信されます。サーバーは「ok」と「」で応答するZZZため、値は更新されますが同じ場所にとどまります。つまり、並べ替え順序は更新されません。

これを自動的に行う方法はありますか?どのイベント、どのコード?どのように?

4

2 に答える 2

3

サーバーから「ok」を取得したら、storeメソッドを明示的に呼び出すことができます。何かのようなもの:

myStore.sort("name","ASC");

または、並べ替え列のコレクションがある場合はsorters、ストアで使用可能なプロパティを利用できます。好き:

myStore.sort(myStore.sorters); // this uses the existing sorting rules applied to the store

お役に立てれば。

于 2012-05-02T15:38:27.817 に答える
1

私はSenchaのフォーラムで質問しましたが、歴史上初めて、stackoverflowで答えを得ることができました。だから、答えを共有するために、これが機能する私のコードです:

Ext.define('Ext.data.StoreHandleErrors', {
    extend: 'Ext.data.Store',
    alias: 'data.storehandleerrors',

    constructor: function(config) {
        this.callParent([config]);

        this.on(
            'write',
            function(me, opts) {
                this.sort();
            },
            this
        );
    }
});

説明:コンストラクターをオーバーライドして、「書き込み」イベントが呼び出されるたびに、つまりレコードがサーバーに送信されるたびに、ストアを再ソートして、常に適切に更新されるようにします。これは「多すぎる」(=書き込みごとに再ソートする必要がない)可能性のある一般的な方法ですが、(1)すべてのストアで機能します(2)Abdelが提案したようなカスタムハードコードされたものを作成する必要はありません(ただし、Abdelの回答は、特定のコードで1回だけ作成する方が適している場合があります)。

于 2012-05-03T08:34:08.993 に答える