带有自定义传输的剑道树列表

时间:2018-09-28 10:17:14

标签: javascript kendo-ui kendo-treelist

我必须构建一个树形列表,每次读取查询完成后,该树形列表都会从不同的端点获取元数据,但是显然仅使根级别起作用确实很痛苦。

有人可以在这里看到我做错了吗...

function build(meta) {
    var grid = $('[name=treelist]');

// ifthere's a previous grid, rip it out
var oldGrid = grid.data("kendoTreeList");
if (oldGrid) {
    oldGrid.destroy();
    grid.empty();
}

var rootData = meta.Properties.map(function (i) {
    return {
        Id: i.Name,
        ParentId: null,
        ServerType: i.ServerType,
        ParentType: { Id: null, Name: meta.Name, Type: meta.ServerType, Meta: meta },
        Name: i.Name,
        Type: i.Type,
        Expression: "",
        CanExpand: i.Type === "object" || i.Type === "array",
        Meta: i
    };
});

// build config for the new grid
var config = {
    dataSource: new kendo.data.TreeListDataSource({
        transport: {
            read: function(o) {
                o.success(rootData);
            }
        },
        data: rootData,
        schema: {
            model: {
                id: "Id",
                parentId: "ParentId",
                hasChildren: "CanExpand",
                fields: {
                    Name:       { field: "Name", type: "string" },
                    Type:       { field: "Type", type: "string" },
                    Expression: { field: "Expression", type: "string" }
                }
            }
        }
    }),
    columns: [
        {
            title: "",
            width: 70,
            template: "<input name='Selected' type='checkbox' data-bind='checked: Selected' #= data.Selected ? checked='checked' : '' #/>"
        },
        { field: 'Id', title: 'Path' },
        { field: 'Name', title: 'Name' },
        { field: 'Type', title: 'Type' },
        { title: "Expression", template: "<input name='expression' type='text' />" },
    ]
};

// tell kendo to build it
grid.kendoTreeList(config);
}

...此代码设置了一个树形列表,但是即使基本集具有记录,也显示消息“ no records”,我将其设置为data属性,并始终在读取传输配置时返回。 / p>

我没有例外/警告,只是一个空列表。

0 个答案:

没有答案