0

我使用 KendoUI 树视图绑定到远程数据,下面是我的代码:

            <script>
            var serviceRoot = "/kendoui";

            var Taxonomys = {
                schema: {
                    model: {
                        id: "Name",
                        hasChildren: function () {
                            return false;
                        }
                    }
                },
                transport: {
                    read: {
                        url: function (options) {
                            return kendo.format("http://localhost/MySite/MySiteService.svc/Organization/{1}/Project/{0}/Taxonomy?includeSchema=0", options.Name);
                        }
                    }
                }
            };

            var Projects = {
                schema: {
                    model: {
                        id: "Name",
                        hasChildren: function () {
                            return true;
                        },
                        children: Taxonomys
                    }
                },
                transport: {
                    read: {
                        url: function (options) {
                            return kendo.format("http://localhost/MySite/MySiteService.svc/Organization/{0}/Project", options.Name);
                        }
                    }
                }
            };

            homogeneous = new kendo.data.HierarchicalDataSource({
                transport: {
                    read: {
                        url: "http://localhost/MySite/MySiteService.svc/Organization ",
                        dataType: "jsonp"
                    }
                },
                schema: {
                    model: {
                        id: "Name",
                        hasChildren: function () {
                            return true;
                        },
                        children: Projects
                    }
                }
            });

            $("#treeview").kendoTreeView({
                dataSource: homogeneous,
                dataTextField: ["Name", "Name", "Name"]
            });
        </script>

在分类法中,我需要组织名称。

http://localhost/MySite/MySiteService.svc/Organization/{1}/Project/{0}/Taxonomy?includeSchema=0

但“url: function (options) {}”中的选项只有项目的名称。如何获得项目的父级名称?

4

1 回答 1

0

给定树中的一个节点,您应该使用在树parent中导航的方法。

例子。如果我们想获得所选节点的祖父母,我们应该使用:

var select = treeview.select();
console.log("select", select);
if (select.length) {
    var parent = treeview.parent(select);
    if (parent.length) {
        console.log("parent", treeview.dataItem(parent));
        var grandparent = treeview.parent(parent);
        if (grandparent.length) {
            console.log("grandparent", treeview.dataItem(grandparent));
        } else {
            console.log("has no grandfather")
        }
    } else {
        console.log("has no father")
    }
} else {
    console.log("select a node");
}

正如你所看到的,我正在验证是否有一个节点被选中,它有一个父亲,它有祖父。

我还显示了该项目的数据。有了这个,您应该能够获得组织和项目,只要它们是模型的一部分。

于 2013-06-05T13:16:59.473 回答