无法使用 customdropdown 读取未定义的 kendo ui js 网格的属性“数据”

Posted

技术标签:

【中文标题】无法使用 customdropdown 读取未定义的 kendo ui js 网格的属性“数据”【英文标题】:Cannot read property 'data' of undefined kendo ui js grid with customdropdown 【发布时间】:2015-07-05 16:05:53 【问题描述】:

这是我的js代码:

$(document).ready(function () 
    $("#grid").kendoGrid(
        dataSource: 
            transport: 
                read: 
                    url: '/Discount/Get',
                    dataType: "json",
                ,
                update: 
                    url: '/Discount/Update',
                    dataType: "json",
                    type: "POST"
                ,
                destroy: 
                    url: '/Discount/Delete',
                    dataType: "json",
                    type: "POST"
                ,
                create: 
                    url: '/Discount/Add',
                    dataType: "json",
                    type: "POST"
                ,
                parameterMap: function (options, operation) 
                    if (operation == "update") 
                        return JSON.stringify(options);
                    
                    if (operation == "create") 
                        return options;
                    
                    if (operation == "destroy") 
                        return JSON.stringify(options);
                    
                
            ,
            schema: 
                model: 
                    id: "Id",
                    fields: 
                        Id:  type: "number" ,
                        TopItemName:  type: "string" ,
                        DiscountValue:  type: "number" ,
                    
                
            
        ,
        toolbar: ["create", "save", "cancel"],
        height: 400,
        pageable: true,
        columns: [
        
            field: "TopItemName",
            editor: topItemDropDown,
            template: "#=TopItemName#"
        ,
        
            field: "DiscountValue",
            format: "0:p0",
            editor: function (container, options) 
                $("<input name='DiscountValue'>")
                .appendTo(container)
                .kendoNumericTextBox(
                  
                      min: 0,
                      max: 1.00,
                      step: 0.01
                  );
            
        ],
        editable: true
    );

    function topItemDropDown(container, options) 
        $('<input required data-text-field="TopItemName" data-value-field="TopItemName" data-bind="value:' + options.field + '"/>')
            .appendTo(container)
            .kendoDropDownList(
                autoBind: false,
                dataSource: 
                    transport: 
                        url: '/Discount/GetTopItemName',
                        dataType: "jsonp",
                        type: "POST",
                        contentType: "application/json"
                    
                
            );
    
);

下拉菜单已正确实现。所以有一个下拉菜单,但是当我按下它时,它应该发布到我的控制器方法并获取值,但我得到了这个错误:

无法读取未定义的属性“数据”

这是我的操作方法:

       public ActionResult GetTopItemName([DataSourceRequest] DataSourceRequest request)
    
        var customer = custAdapter.GetCustomersByCustomerId(SessionStore.CustomerId);
        return Json(customer, JsonRequestBehavior.AllowGet);
    

什么是数据?为什么它是未定义的?

【问题讨论】:

【参考方案1】:

我忘记了数据源的读取功能,所以它应该是这样的:

     transport:
                        read: 
                            url: '/Discount/GetTopItemName',
                            dataType: "json",
                            type: "POST",
                            contentType: "application/json"
                        ,
                 

【讨论】:

您问题中的代码在数据源上定义了一个读取函数。所以这显然不是解决办法。 @DanielGustafsson - 你知道修复是什么吗? @DanielGustafsson - 目前遇到同样的情况,你能解决吗?谢谢。【参考方案2】:

我今天遇到了同样的错误,我认为您的代码中的错误在这一行:

Id:  type: "number" , //THIS IS WRONG!!!

...应该是:

Id:  editable: false, nullable: true ,

【讨论】:

以上是关于无法使用 customdropdown 读取未定义的 kendo ui js 网格的属性“数据”的主要内容,如果未能解决你的问题,请参考以下文章

使用地图时反应'无法读取未定义的属性'

`无法读取未定义的属性(读取'组件')`

无法读取未定义类型错误的属性“推送”:无法读取未定义错误的属性“推送”

未捕获的类型错误:无法读取未定义的属性(读取“使用”)

带有 Ionic 4 的 SQLite?无法读取未定义类型错误的属性“then”:无法读取未定义的属性“then”

Highcharts:无法使用AngularJS读取未定义的属性'parentGroup'