KendoGrid排序编号为字符串

时间:2017-02-08 14:38:16

标签: javascript angularjs kendo-grid

我有一个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,
};

1 个答案:

答案 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