2

我必须为 Kendo Grid 创建一个自定义的“更新”按钮。

基本上,它以编程方式将适当的行置于编辑模式(使用editRow),将某些字段更新为特定值(使用model.set),然后保存该行(使用saveRow)。

它正在工作,但是一旦editRow调用该方法就会显示弹出编辑窗口,这会减慢进程并且看起来不太好。

以编程方式修改数据时,有没有办法抑制弹出窗口?这就是我正在做的(可能有另一种/更好的方法来做到这一点):

    columns: [
        ....
        { command: [{name: 'edit' }, {name: 'approval'}, {name: 'delrow'}] }
    ],
    dataBound: function() {

        grid.find('.k-grid-approval').click(function() {
            var row = $(this).parents('tr:first');
            var g = requisitions.data('kendoGrid');
            var data = g.dataItem(row[0]);
            var model = g.dataSource.getByUid(data.uid);
            g.editRow(row[0]);
            model.set('status', 'Pending');
            model.set('date_submitted', moment().toDate());
            g.saveRow();
        });

我怀疑有更好的方法可以做到这一点,但我不知道它是什么。非常感谢任何建议。

4

1 回答 1

6

我是对的......有更好的方法:

dataBound: function() {

    grid.find('.k-grid-approval').click(function() {
        var row = $(this).parents('tr:first');
        var g = requisitions.data('kendoGrid');
        var data = g.dataItem(row[0]);
        var model = g.dataSource.getByUid(data.uid);
        // g.editRow(row[0]);
        model.set('status', 'Pending');
        model.set('date_submitted', moment().toDate());
        // g.saveRow();
        // editRow and saveRow are not required -- just use dataSource.sync()
        g.dataSource.sync();
    });
于 2013-06-13T11:26:58.937 回答