0

我正在使用此页面上提供的示例 Telerik在 Kendo UI 网格中进行内联编辑,我想将“类别”列中的内联下拉列表绑定到 JSON 对象,而不是使用他们拥有的 xml 数据在他们的演示中。当我使用 JSON 数据时,下拉列表不起作用。如何将 JSON 对象绑定到内联下拉列表?一个完整的工作小提琴可以在这里找到

这是绑定数据源的 JavaScript 函数。

function categoryDropDownEditor(container, options) {
    var categories = {
        'Category': [
            { 'CategoryName': 'Beverages', 'CategoryID': 1 },
            { 'CategoryName': 'Condiments', 'CategoryID': 2 },
            { 'CategoryName': 'Confections', 'CategoryID': 3 },
            { 'CategoryName': 'Dairy Products', 'CategoryID': 4 },
            { 'CategoryName': 'Grains/Cereals', 'CategoryID': 5 },
            { 'CategoryName': 'Meat/Poultry', 'CategoryID': 6 },
            { 'CategoryName': 'Produce', 'CategoryID': 7 },
            { 'CategoryName': 'Seafood', 'CategoryID': 8 }
        ]
    };

    $('<input required data-text-field="CategoryName" data-value-field="CategoryID" data-bind="value:' + options.field + '"/>')
        .appendTo(container)
        .kendoDropDownList({
            autoBind: false,
            dataSource: categories
        });
}
4

2 回答 2

0

Try changing the following.

var Category = 
 [
            { 'CategoryName': 'Beverages', 'CategoryID': 1 },
            { 'CategoryName': 'Condiments', 'CategoryID': 2 },
            { 'CategoryName': 'Confections', 'CategoryID': 3 },
            { 'CategoryName': 'Dairy Products', 'CategoryID': 4 },
            { 'CategoryName': 'Grains/Cereals', 'CategoryID': 5 },
            { 'CategoryName': 'Meat/Poultry', 'CategoryID': 6 },
            { 'CategoryName': 'Produce', 'CategoryID': 7 },
            { 'CategoryName': 'Seafood', 'CategoryID': 8 }
];

and as the datasource use

$('<input required data-text-field="CategoryName" data-value-field="CategoryID" data-bind="value:' + options.field + '"/>')
        .appendTo(container)
        .kendoDropDownList({
            autoBind: false,
            dataSource: Category
        });
于 2013-10-10T13:10:23.530 回答
0
function categoryDropDownEditor(container, options) {
    var categories = {
        'Category': [
            { 'CategoryName': 'Beverages', 'CategoryID': 1 },
            { 'CategoryName': 'Condiments', 'CategoryID': 2 },
            { 'CategoryName': 'Confections', 'CategoryID': 3 },
            { 'CategoryName': 'Dairy Products', 'CategoryID': 4 },
            { 'CategoryName': 'Grains/Cereals', 'CategoryID': 5 },
            { 'CategoryName': 'Meat/Poultry', 'CategoryID': 6 },
            { 'CategoryName': 'Produce', 'CategoryID': 7 },
            { 'CategoryName': 'Seafood', 'CategoryID': 8 }
        ]
    };

    $('<input required data-text-field="CategoryName" data-value-field="CategoryID" data-bind="value:' + options.field + '"/>')
        .appendTo(container)
        .kendoDropDownList({
            autoBind: false,
            dataSource: categories.Category
        });
}

看上面,你需要使用属性绑定到数据源。由于 kendo 数据源需要一个 Array 对象。

于 2014-11-11T02:03:55.783 回答