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()
いますが、ここではグリッドをリロードしたくありません。列を並べ替えるときと同じように、グリッドを即座に更新する必要があります。
解決策を提案してください。