Как заставить сортировку работать правильно в Kendo ui в случае пустых полей в Grid / Hierarchical Grid?
В случае сетки кэндо есть случай, когда сетка заполнена пустыми полями, как показано на рисунке. Сортировка в этом случае изменяется и ведет себя не так, как ожидалось. У меня проблема с пустыми полями. Те должны прийти в первый или в последний раз, пока сортируются, но они приходят то здесь, то там. Есть идеи, как это преодолеть?
Вот что я пытался сделать до сих пор:
$(document).ready(function() {
$("#grid").kendoGrid({
dataSource: {
data: [
{ FirstName: 'Alphy', NumberColumn: 10},
{ FirstName: 'Betty', NumberColumn: 5},
{ FirstName: 'Ashish', NumberColumn: ""},
{ FirstName: 'Carlos', NumberColumn: -61},
{ FirstName: 'zebra', NumberColumn: -7},
{ FirstName: 'Ketty', NumberColumn: 5},
{ FirstName: 'alpha', NumberColumn: ""},
{ FirstName: 'Loren', NumberColumn: 5},
{ FirstName: 'Brian', NumberColumn: 5}
]
},
sortable: {
mode: "single",
allowUnsort: false
},
columns: [
{
field: "FirstName",
title: "First Name"
},
{
field: "NumberColumn",
title: "Number Column"
}
]
});
});
<link href="http://cdn.kendostatic.com/2015.2.624/styles/kendo.material.min.css" rel="stylesheet" />
<link href="http://cdn.kendostatic.com/2015.2.624/styles/kendo.common-material.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="http://cdn.kendostatic.com/2015.2.624/js/kendo.all.min.js"></script>
<div id="grid"></div>
1 ответ:
Сортировка выглядит как ошибка, потому что вы отправляете
empty string ("")
в свою сетку. И вы не можете сравнитьint
сstring
в этом случае.Вам нужно отправить
null
значение, чтобы заставить его работать правильно.2 возможные пути:
1) Это можно сделать, изменив источник данных следующим образом:
{ FirstName: 'Alphy', NumberColumn: 10}, { FirstName: 'Betty', NumberColumn: 5}, { FirstName: 'Ashish', NumberColumn: null}, { FirstName: 'Carlos', NumberColumn: -61}, { FirstName: 'zebra', NumberColumn: -7}, { FirstName: 'Ketty', NumberColumn: 5}, { FirstName: 'alpha', NumberColumn: null}, { FirstName: 'Loren', NumberColumn: 5}, { FirstName: 'Brian', NumberColumn: 5}
JSFiddle: http://jsfiddle.net/ghorg12110/pwmtzq81/6/
2) Вы можете изменить свои данные в
schema
:data: [ { FirstName: 'Alphy', NumberColumn: 10}, { FirstName: 'Betty', NumberColumn: 5}, { FirstName: 'Ashish', NumberColumn: ""}, { FirstName: 'Carlos', NumberColumn: -61}, { FirstName: 'zebra', NumberColumn: -7}, { FirstName: 'Ketty', NumberColumn: 5}, { FirstName: 'alpha', NumberColumn: ""}, { FirstName: 'Loren', NumberColumn: 5}, { FirstName: 'Brian', NumberColumn: 5} ], schema: { data: function (response) { for (var i = 0; i < response.length; i++) { if (response[i].NumberColumn === "") { response[i].NumberColumn = null; } } return response; } }