javascript - 具有远程数据源的 Kendo TreeView 仅填充根元素

标签 javascript kendo-ui kendo-treeview

我在使用远程数据源完全填充 Kendo TreeView 时遇到困难,尽管使用本地数据源可以正常工作。

简而言之,下面的第一个示例使用本地数据源。这一切都很完美:

// local datasource, works perfectly
var local = new kendo.data.HierarchicalDataSource({
    data: [
        {
            "DeviceGroupId": 1,
            "DeviceGroupName": "Superdeluxe Devices",
            "Devices": [
                {
                    "Id": 1000,
                    "Name": "My First Device"
                },
                {
                    "Id": 1001,
                    "Name": "My Second Device"
                }
            ]
        }
    ],
    schema: {
        model: {
            children: "Devices"
        }
    }
});

// initialize - this works!
$("#list-of-devices").kendoTreeView({
    dataSource: local,
    dataTextField: ["DeviceGroupName", "Name"],
    loadOnDemand: false
});

同样,上面的示例工作得很好。现在,下面的第二个示例没有:它仅填充 Treeview 的根元素(“Superdeluxe Devices”)。它完全忽视了 children 。

// remote datasource
var remote = new kendo.data.HierarchicalDataSource({
    transport: {
        read: {
            url: "/api/devices/list", // <-- confirmed this works
            dataType: "json",
            contentType: "application/json"
        },
        schema: {
            model: {
                children: "Devices"
            }
        }
    }
});

// initialize
$("#list-of-devices").kendoTreeView({
    dataSource: remote, // the issue: only shows top level nodes
    dataTextField: ["DeviceGroupName", "Name"],
    loadOnDemand: false
});

因此,第二个示例中的问题是仅显示顶级节点,没有任何扩展选项。

我研究了以下内容:

总而言之,我似乎无法弄清楚为什么本地变体工作得很好 - 而 Remote 却没有显示 children 。有什么建议吗?

最佳答案

问题出在您的远程数据源定义中,您将 schema.model 定义为传输的一部分,但事实并非如此。应该是:

var remote = new kendo.data.HierarchicalDataSource({
    transport: {
        read: {
            url: "list.json",
            dataType: "json",
            contentType: "application/json"
        }
    },
    schema: {
        model: {
            children: "Devices"
        }
    }
});

schematransport 处于同一级别。

关于javascript - 具有远程数据源的 Kendo TreeView 仅填充根元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28043848/

相关文章:

javascript - Chrome 扩展 : How to manipulate browser_action. default_popup DOM

javascript - 是否可以输入 ="text"以要求电子邮件或电话?

javascript - 如果网页位置随后更改,则不会发送 XMLHttpRequest

javascript - Kendo 图表第二个 valueAxis 问题,不适用于 axisCrossingValue

c# - 开始使用 Telerik : kendoDropDownList is not a function

javascript - 访问所选 Kendo TreeView 节点的子节点

javascript - 气泡图动态更改 JSON 响应中的 X 标签值

javascript - Kendo Treeview - 如何在另一个 Treeview 中显示具有所有父节点的选定节点

c# - Telerik Net Core Treeview 模板-从所选项目的输入框中获取值

c# - 如何查询 Kendo MVVM Treeview 模型