Kendo Ui Grid - dataItem.set()方法无法正常工作

Dar*_*jar 3 kendo-ui kendo-grid

我有一个有4列名称,年龄,集合,利润的网格.但是当我尝试设置一个数字列时,它并没有反映在网格上.

schema:
{
    model:{
        fields:{
            name:{type:"string"},
            age:{type:"number"},
            collection: { type:"number", defaultValue:0.00},
            profit: { type:"number", defaultValue:0.00}
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这段代码很完美:

var grid = $("#grid").data("kendoGrid");
var data = grid.dataSource.at(0);
data.set("name", "John Doe");
Run Code Online (Sandbox Code Playgroud)

但我想更新数字列:

var grid = $("#grid").data("kendoGrid");
var data = grid.dataSource.at(0);
var collectionVal = 50000;
data.set("collection", collectionVal);
Run Code Online (Sandbox Code Playgroud)

并且它没有更新,因为列的类型为"number".

更新:

pageable: 
{
    refresh  : true,
    pageSizes: true
},
edit: function(e) 
{
    $('input[name="age"]').blur(function()
    {
        mygrid = $("#grid").data("kendoGrid");
        selectedRow = mygrid.select();
        dataItem = mygrid.dataItem(selectedRow);

        dataItem.collection = dataItem.age * dataItem.profit;
        dataItem.set("collection", dataItem.collection);
    });
}
Run Code Online (Sandbox Code Playgroud)

Ona*_*Bai 5

不是collection在其中blur定义的处理程序中更新,而是在网格中edit定义一个save事件处理程序,如下所示:

pageable  : {
    refresh  : true,
    pageSizes: true
},
save      : function (e) {
    var profit = e.values.profit || e.model.profit;
    var age = e.values.age || e.model.age;
    this.dataSource.getByUid(e.model.uid).set("collection", age * profit);
}
Run Code Online (Sandbox Code Playgroud)