kendo-ui - Kendo TreeView 按需加载未命中服务器

标签 kendo-ui kendo-treeview

对于我的 Kendo Treeview ,我将按需加载设置为 true,但它并没有点击服务器来加载 child ,因为“ child ”属性是为数据源模型设置的,即使它是空的。

homogeneous = new kendo.data.HierarchicalDataSource({
         transport: {
            read: {
                type: 'POST',
                contentType: "application/json; charset=utf-8",
                url: obj.DataSourcesURL,
                dataType: "json"
            },
            parameterMap: function (options) {
                if (!options.Id) {
                    options.Id = null;

                }
                if (options.filter) {
                    options.Search = options.filter.filters[0].name;
                }
                else {
                    options.Search = '';

                }
                return JSON.stringify(options);
            }
        },
        schema: {
            data: "d",
            errors: function (response) {
                console.log(response);
                console.log("errors");
            },
            model: {
                hasChildren: "hasChild",
                children:'items',
                id: "Id"
            }
        }
    });

而 Treeview 代码是
$treeView.kendoTreeView({
        dataTextField: 'Description',
        checkboxes: {
            checkChildren: true
        },
        dataSource: homogeneous,
        loadOnDemand: loadOnDemand,
        check: function () {
            var checkedNodes = [];
            var treeView = $treeView.data("kendoTreeView");

            getCheckedNodes(treeView.dataSource.view(), checkedNodes);
            setMessage(checkedNodes.length);
        },
        dataBound: function (e) {
            if (e !== undefined)
                resetCheckedNodes(e.sender.dataItems());
        },
        messages: {
            loading: "Laden..."
        },
        expand: function (e) {
            var dataItem = this.dataItem(e.node);

        }
    });

最佳答案

尝试在您的架构中像这样设置 hasChildren:

schema: {
        data: "d",
        errors: function (response) {
            console.log(response);
            console.log("errors");
        },
        model: {
            hasChildren: function(e) {
                    return e.items && e.items.length;
                },
            children:'items',
            id: "Id"
        }
    }

而且根据您的问题,我不确定您是否获得了任何数据,或者只是没有返回 Children 数据。也许您还可以展示您的数据结构的外观。

关于kendo-ui - Kendo TreeView 按需加载未命中服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40212365/

相关文章:

jquery - Kendo Grid - 您可以添加带有弹出窗口的行并进行内联编辑吗?

kendo-ui - 如果没有要显示的 child ,我如何删除 kendo ui Treeview 中的展开箭头

spring - Kendo Spring 演示项目缺少数据库

c# - kendo treeView更改节点文本

javascript - 当剑道验证器无效时,.submit 函数不会运行

javascript - 在 Transport.read 函数中访问 dataItem

kendo-ui - 如何使用kendoWindow获取kendoNotification显示

asp.net-mvc - Kendo Treeview 远程数据所有节点最初加载

kendo-ui - 从 Kendo 网格数据填充 Kendo Treeview

javascript - Kendo treeview expandPath 方法