0

在我的剑道网格上,我有“editable=true”和“autoSync=true”的数据源。当我点击一个单元格时,它变成可编辑的,当离开单元格时它执行传输的更新事件。

没关系。

在更新事件中,我可以访问包含已修改行的所有值的数据集模型的行(尽管使用 editable=true 和 autosync,只会修改一个列值)。

我需要知道修改了哪个列/字段?

理想情况下,我认为信息将在提供给更新事件的参数(选项)中。

dataSource = new kendo.data.DataSource({
        autoSync: true,
        transport: {
           update: function (options) {
             // options does not tell me which model field was updated?
             ...

但由于它不存在,我想我需要绑定到模型的 set 事件,但我无法让它工作。

有任何想法吗?

4

1 回答 1

0

不要介意这个答案!我读错了这个问题。

我想我已经按照你喜欢的方式工作了。

这是你要找的jsFiddle吗?

var ds = new kendo.data.DataSource({
    autoSync: true,
    transport: {
        read: function(options) {
            options.success([
                { Id: 1, A: 'Hello', B: 'World' },
                { Id: 2, A: '1', B: '2' },
                { Id: 3, A: 'fdasf', B: '4523' }
            ]);
        },
        update: function (options) {
            var uid = ds.data().find(function(p) {return p.Id == options.data.Id;}).uid;
            var tr = $('#grid .k-grid-content tr[data-uid="'+uid+'"]');
            console.log(tr);
            //Do something with tr
        }
    },
    schema: {
        model: { id: "Id" }
    }
});

$('#grid').kendoGrid({
    dataSource: ds,
    editable: true,
});
于 2014-02-26T12:43:08.113 回答