Razor 剑道树视图-如何在展开剑道树视图上加载子节点

Razor 剑道树视图-如何在展开剑道树视图上加载子节点,razor,kendo-ui,treeview,kendo-treeview,kendo-ui-mvc,Razor,Kendo Ui,Treeview,Kendo Treeview,Kendo Ui Mvc,我有一个巨大的树视图要绑定,所以需要渲染所有的父视图,然后在展开时渲染子视图。如何在展开剑道树视图上加载子节点 我已经看了下面的帖子,但不确定“节点”和“HasNodes”的引用是从哪里来的,他在上一篇文章中说问题解决了 谢谢你的帮助 过去几天我自己一直在玩这个 首先,您需要定义一个方法,该方法允许您传递一个节点Id(您正在扩展的那个),或者如果获取根节点并返回一个节点对象列表,则为null 配置treeview时,请确保您没有将模型设置为使用“children”字段-这会由于某种原因阻止任何o

我有一个巨大的树视图要绑定,所以需要渲染所有的父视图,然后在展开时渲染子视图。如何在展开剑道树视图上加载子节点

我已经看了下面的帖子,但不确定“节点”和“HasNodes”的引用是从哪里来的,他在上一篇文章中说问题解决了

谢谢你的帮助


过去几天我自己一直在玩这个

首先,您需要定义一个方法,该方法允许您传递一个节点Id(您正在扩展的那个),或者如果获取根节点并返回一个节点对象列表,则为null

配置treeview时,请确保您没有将模型设置为使用“children”字段-这会由于某种原因阻止任何ondemand加载,并将loadOnDemand设置为true(默认情况下仍为true)

设置好后,需要配置transport.read.data以获取节点的id,并将其传递给方法调用

在我的示例中,我将树模型定义为具有ItemId、ItemName、HasChildItems和ParentTreeId属性的对象

将HasChildItems设置为true可确保节点具有扩展功能

示例:-

演示配置

// the Datasource
var demoDataSource= new kendo.data.HierarchicalDataSource({
            transport: {
                read: {
                    url: urlforyouraction_dataretrieval,
                    cache: false,
                    type: 'POST',
                    dataType: "json",
                    traditional: true,
                    data: function (e) {
                        return {
// e is the node passed in, this is null on initial read
                            ParentTreeId: !e.id ? null : e.id
                        }
                    }
                }
            },
            schema: {
                model: {
                    id: "ItemId",
                    Name: "ItemName",
                    hasChildren: "HasChildItems",
                    parentTreeId: "ParentTreeId"
                }
            }
        });

    // the treeview
    var demoTree = $("#treeview-left").kendoTreeView({
                loadOnDemand: true,
                dataSource: demoDataSource,
                dataTextField: "ItemName"
            }).data("kendoTreeView");