繁体   English   中英

kendo-ui中的下拉列表未检索数据

[英]Drop-down in kendo-ui not retrieving data

我正在测试项目中,我从Web API填充下拉列表... 原样使用ThisDemo ....

一次所有这些都工作正常,现在它始终显示控制台错误,我在问题末尾提到了...

我确定只有定位模板存在问题

{template:“#= Status.StatusName#”}

...我不确定这是否是正确的方法....但是当我删除此代码时,错误部分消失了,但下拉菜单显示的是undefined而不是StatusName ...

查看代码(我已经使用了选定的脚本)

...
    schema: {
        model: {
            id: "ProjectId",
            fields: {
                ProjectId: { editable: true, nullable: false, type: "number" },
                ClientId: { editable: true, nullable: false, type: "number" },
                Name: { editable: true, nullable: true, type: "string" },
               // Status: { editable: true, nullable: true, type: "string" },
               Status: { defaultValue: { StatusID: 1, StatusName: "Completed" } },
               IsActive: { editable: true, nullable: false, type: "boolean" },
            }
        }
    }
});

$("#grid").kendoGrid({
    dataSource: dataSource,
    pageable: true,
    toolbar: ["create"],
    scrollable: false,
    sortable: true,
    groupable: true,
    filterable: true,
    columns: [
        { field: "Name", title: "Project Name", width: "170px" },
        //{ field: "Status", title: "Status", width: "110px" },
        { field: "Status", title: "Status", width: "180px", editor: statusDropDownEditor, template: "#=Status.StatusName#" },
        { field: "IsActive", title: "Active", width: "50px" },
        { command: "", template: "<a href='Project/Task'>Manage Task</a>", width: "30px", filterable: false },
        { command: "", template: "<a href='Project/Setting'>Setting</a>", width: "30px", filterable: false },
        { command: ["edit", "delete"], title: "&nbsp;", width: "80px" }
    ],
    editable: "popup"
});

function statusDropDownEditor(container, options) {
    $('<input required data-text-field="StatusName" data-value-field="StatusID" data-bind="value:' + options.field + '"/>')
        .appendTo(container)
        .kendoDropDownList({
            autoBind: false,
            dataSource: {
                type: "odata",
                transport: {
                    read: "http://demos.telerik.com/kendo-ui/service/Northwind.svc/Categories"
                }
            }
        });
}

未捕获到的TypeError:无法读取null(匿名函数)的属性'StatusName'@ VM1415:1pt.ui.DataBoundWidget.extend._rowsHtml @ kendo.all.min.js:31pt.ui.DataBoundWidget.extend._renderContent @ kendo.all。 min.js:32pt.ui.DataBoundWidget.extend.refresh @ kendo.all.min.js:32b.extend.proxy.b.isFunction.i @ jquery.min.js:3i.extend.trigger @ kendo.all。 min.js:9ht.extend._process @ kendo.all.min.js:11ht.extend.success @ kendo.all.min.js:11ht.extend.read.n._queueRequest.n.online.n.transport。 read.success @ kendo.all.min.js:11pt.extend.read.n.success @ kendo.all.min.js:11b.Callbacks.c @ jquery.min.js:3b.Callbacks.p.fireWith @ jquery.min.js:3k @ jquery.min.js:5b.ajaxTransport.send.r @ jquery.min.js:5

如果有人有任何想法请帮忙,任何帮助将不胜感激,谢谢您的宝贵时间

该问题与odata服务返回的数据有关。 数据如下所示:

ProductID : 1,
ProductName : "Chai",
SupplierID : 1,
CategoryID : 1,
QuantityPerUnit : "10 boxes x 20 bags",
UnitPrice : 18.0000,
UnitsInStock : 39,
UnitsOnOrder : 0,
ReorderLevel : 10,
Discontinued : false,
Category : {
    CategoryID : 1,
    CategoryName : "Beverages",
    Description : "Soft drinks, coffees, teas, beers, and ales"
}

如您所见,odata服务返回的数据中没有Status 缺少的字段(如Status )将被解析为undefined值。 但是,如果您尝试获取该undefined对象的属性(就像模板一样),则会因为无法执行undefined.undefined而导致错误。

作为旁注; defaultValue 模型不支持defaultValue

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM