2016-09-19 3 views
0

У меня проблема с сортировкой в ​​сетке Кендо. Вот мой пример: http://dojo.telerik.com/iVATi
В IE сортировочных работает отлично: вид по умолчанию и по возрастанию сортировать вид те же: первый собирается элементы, начиная с символов, во-вторых элементов с A-Z буквы, третьего элементов с а-я буквами.
Но в Chrome и Firefox я вижу три других результата:
1). default view: первый элемент, начинающийся с символов, второй элемент с a-z буквами, третьи элементы с а-я буквами. (правильно!)
2). сортировка по возрастанию: начальные элементы, начинающиеся с символов, второй элемент с а-я буквами, третьи элементы с буквой a-z. (плохо!)
3). сортировка по убыванию: первые элементы с z-буквой, вторыми элементами с буквами я-а, третьими отсортированными элементами с символами. (правильно!)kendo grid сортировка не работает в Chrome

ответ

0

Проблема связана с неустойчивой сортировкой Chrome, а adding an auxiliary data field - это стандартный способ устранения этого ограничения.

В случае, если вы не хотите, чтобы добавить индексы в массиве элементов данных, можно также добавить их на лету с schema.parse:

var dataSource = new kendo.data.DataSource({ 
    data: [ 
     { Name: "!asdgad" }, 
     { Name: "@sgjkhsh" }, 
     { Name: "adfadfka" }, 
     { Name: "tgjbndgnb" }, 
     { Name: "xsdfvks" }, 
     { Name: "абдваолптрв" }, 
     { Name: "пролрлитс" }, 
     { Name: "юатроваро" }, 
     { Name: "юдвлоитвт" } 
    ], 
    schema: { 
     parse: function(data) { 
     for (var i = 0; i < data.length; i++) { 
      data[i].index = i; 
     } 
     return data; 
     } 
    } 
    }); 

Вы все еще нужно будет использовать пользовательские функции компаратором хоть.

+0

А как насчет этого решения: [link] (http://dojo.telerik.com/iVATi/3)? – user1893999

+0

Это неправильно сортируется на моей стороне. Попробуйте использовать этот подход с колонкой «Адрес» здесь, имена будут по-прежнему сдвигаться - http://docs.telerik.com/kendo-ui/controls/data-management/grid/how-to/stable-sort-chrome – dimodi

+0

Да, эта ссылка с идеей добавления позиций, которые я использовал изначально. И [http://dojo.telerik.com/UKimo](http://dojo.telerik.com/UKimo) с функцией сравнения 'compare: function (a, b) { \t return a.index - b.index ; \t} 'работает так же, как и в IE. – user1893999

0

Я решил эту проблему. Я расширил отсортированный источник данных с полем индекса и добавил функцию-сравнение по индексу для имени поля: http://dojo.telerik.com/UKimo
Возможно, существуют другие решения?