0

2 か月前にこの質問をしましたが、回答もコメントも返信もありませんでした。なので再投稿

ソート機能を持つ ExtJs グリッドがあります。(ExtJS 2.3.0)

次のように列をソートしています-

sort: function (colName, direction) {
       //
       // Some sort logic
       //
       this.fireEvent("datachanged", this);
}

これはうまくいっています。列は正常にソートされます。

これで、グリッドの上に「Remove Sort」というボタンができました。このボタンをクリックすると、適用された並べ替えを削除したいと思います。

私は試した-

removeSort: function (colName, direction) {
    // some logic
    //
    store.sortInfo = null; // This will remove the sortinfo (working as expected)
    grid.saveState(); // Saves the sort state (working as expected)
    this.fireEvent("datachanged", this);
}

上記のコードstore.sortInfo = null;では、sortinfo を削除して状態を保存します。しかし、ここで「datachanged」は起動していません。つまり、「並べ替えの削除」ボタンでグリッドを更新しません。

グリッドの機能を使用できることはわかってreload()いますが、ここではグリッドをリロードしたくありません。列を並べ替えるときと同じように、グリッドを即座に更新する必要があります。

解決策を提案してください。

4

1 に答える 1

0

removeSortキーワードを使用するのではなく、thisstore オブジェクトへの直接参照を使用してください。store.fireEvent("datachanged", store );

于 2014-05-05T11:51:55.393 に答える