为什么当我点击更新按钮错误时TypeError:r是未定义的?

obj*_*son 10 popup kendo-ui kendo-grid

firefox浏览器中的错误如下:TypeError:r未定义

这是chrome浏览器:Uncaught TypeError:无法读取undefined的属性'data'

我还制作了一个视频,以便更好地理解.

当我更改字段中的值时发生错误

jsfiddle代码

youtube视频

按钮代码更新

      save: function (e) {
            var that = this;
            $.ajax({

                url: '/api/apdevice',
                type: e.model.id == null ? 'POST' : 'PUT',
                contentType: 'application/json',
                data: JSON.stringify(e.model),
                success: function (data) {
                    alert('yes');
                    that.refresh();
                },

                error: function (data) {
                    alert('no');
                    that.cancelRow();
                }

            });
        }
Run Code Online (Sandbox Code Playgroud)

rya*_*yan 3

原因是您的数据源的更新方法被调用。尚未设置为您提供TypeError.

您可以做两件事之一。

  1. 设置数据源的更新方法以包含保存函数中包含的逻辑。您需要将 update 设置为函数,以便能够动态控制方法 (POST/PUT)。此时您应该从保存事件中删除 ajax 代码。
  2. 将更新方法设置为虚拟函数,并将其作为保存事件的一部分进行处理。

这是方法#2 的示例。

var dataSource = new kendo.data.DataSource({
  ..
  update: function(e) { return true; }
  ..
});
Run Code Online (Sandbox Code Playgroud)

保持保存事件功能不变。

请注意,我收到错误Uncaught SyntaxError: Unexpected number。我相信这源于LastClientsCount财产。

小提琴: http: //jsfiddle.net/mSRUe/23/