我有一个kendogrid没有排序数字纠正;他们排序为字符串而不是数字。因此,对于一个排序的数字列,1到10,而不是1,2,3,4,5,6,7,8,9,10,我最终得到1,10,2,3等。< / p>
提供给网格的数据是JSON数组。我想要排序的列是下面的Id列。我尝试过并使用不同的定义成功,其中数据直接从服务器提取并且排序在服务器上完成;但是在这种情况下我无法这样做。
我的HTML是:
<div id="myGrid" kendo-grid="myGrid"
k-options="myGridOptions"></div>
我的JavaScript是:
var myModel = kendo.data.Model.define({
id: "Id",
fields: $scope.myColumns
});
$scope.myDataSource = new kendo.data.DataSource({
data: $scope.data,
pageSize: 10,
sort: [{field:"Id", dir:"asc"}],
schema: {
model: myModel
}
});
$scope.myColumns = [
{ field: 'Id',title: 'ID',width:"80px", type:"number" },
{ field: 'amount',title: 'Amount',width:"130px",type:"number" }
];
$scope.myGridOptions = {
dataSource: $scope.myDataSource,
reorderable: true,
groupable: false,
sortable: {
allowUnsort: false,
},
selectable: "multiple, row",
pageable: {
pageSize: 20,
pageSizes: [10, 20, 50],
},
columns: $scope.myColumns,
};
答案 0 :(得分:0)
我认为schema.model.fields
不能定义为数组。
试试这个:
var myModel = kendo.data.Model.define({
id: "Id",
fields: { Id: { type:"number" }, amount: { type: "number" } }
});
请参阅http://docs.telerik.com/kendo-ui/api/javascript/data/model