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

时间:2013-08-12 14:51:47

标签: popup kendo-ui kendo-grid

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

这是Chrome浏览器: 未捕获的TypeError:无法读取未定义的属性“数据”

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

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

jsfiddle code

youtube video

按钮代码更新

      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();
                }

            });
        }

1 个答案:

答案 0 :(得分:3)

原因是因为正在调用您的数据源的更新方法。它尚未设置为TypeError

你可以做两件事之一。

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

    var dataSource = new kendo.data.DataSource({
      ..
      update: function(e) { return true; }
      ..
    });
    

    保持保存事件功能不变。

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

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