このリンクhttps://github.com/SitePen/dgrid/issues/276で kfranqueiro によって提案されているように、dgrid の並べ替えロジックをオーバーライドしようとしています。
サーバーからデータをソートされた順序で取得し、列ヘッダーの UI を更新したいだけです。私はこれをやっています -
On(mygrid, 'dgrid-sort', lang.hitch( this,function(event){
var sort = event.sort[0];
var order = this.sort.descending ? "descending" : "ascending";
console.log("Sort "+ this.sort.property + " in " +order+" order.");
event.preventDefault();
mygrid.updateSortArrow(event.sort, true);
myFunctionToRefreshGrid();
}));
...
myFunctionToRefreshGrid: function() {
...//get data from server in sorted order
var mystore = new Memory({data: sortedDataFromServer, idProperty: 'id'});
mygrid.set("collection", mystore);
...
}
Memory
こちらです"dstore/Memory"
。私は使用dgrid 0.4,
dstore 1.1
していますdojo 1.10.4
呼び出す前に、それが望ましいソート順になっていることがset('collection',...)
わかります。sortedDataFromServer
しかし、何らかの理由で、グリッド内の順序が異なります。たとえば、降順で並べ替えると、小文字で始まる値が最初に降順で表示され、次に大文字で始まる値が並べ替えられます。dstore がさらに何かをしているようです。
何が起こっているのでしょうか?私は何か間違ったことをしていますか?カスタムソートを行う別の/より良い方法はありますか?
ありがとう、