0

我只是想使用自己的工作流程从网格中删除记录。这不是通过 Javascript 执行此操作的正确方法吗?下面的函数删除了该行,但刷新页面显示该行实际上并未从数据源中删除,并且我没有看到 Chrome 的网络选项卡中发送的任何请求。我应该补充一点,我能够完美地获得对网格和 dataItem 的引用。

 function delete(e) {

                var $tr = $(e.currentTarget).closest("tr"),
                    grid = this,
                    dataItem = grid.dataItem($tr),
                    id = $tr.attr(kendo.attr("uid")),
                    model = grid.dataSource.getByUid(id);

                e.preventDefault();           

                grid.dataSource.remove(model);
                grid.dataSource.sync();
    }

编辑 - 这是我的数据源的定义方式:

$scope.contacts = new kendo.data.DataSource({
            transport: {
                read: {
                    url: apiUrl,
                    dataType: "json",
                    type: "GET"
                },
                update: {
                    url: apiUrl,
                    dataType: "json",
                    type: "POST"
                },
                destroy: {
                    url: apiUrl,
                    type: "DELETE"
                },
                create: {
                    url: apiUrl,
                    dataType: "json",
                    type: "POST"
                }
            },
            pageSize: 10
        });
4

1 回答 1

0

我发现了一些东西,我不知道它是否对你有用。我需要在我的 kendo.datasource 中添加这一行

    schema: { 
             model:{id:"id"}
        }

并像这样触发

     data_source_inspection.remove(selected.data);
     data_source_inspection.sync();

这对我有用。

于 2013-06-19T01:42:15.557 回答