Я пытаюсь переопределить логику сортировки в dgrid, как предложено kfranqueiro по этой ссылке - https://github.com/SitePen/dgrid/issues/276.dgrid custom sort issue
Я получаю данные с сервера в отсортированном порядке и просто хочу обновить интерфейс заголовка столбца. Я делаю это -
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 делает что-то большее.
Что может быть? Я делаю что-то неправильно? Есть ли другой/лучший способ сделать обычную сортировку?
Спасибо,
Не работает. Получил это - 'TypeError: sort is null Grid.js: 379: 7' ' TypeError: grid.sort is null. Обратите внимание, что я вызываю 'mygrid.updateSortArrow (event.sort, true);', чтобы показать отсортированный индикатор в пользовательском интерфейсе. – ksrini
он должен работать, я делаю сортировку в одной моей сетке, см. Пример выше – Shahzad