【问题标题】:Child not showing up in KendoTreeView Web孩子没有出现在 KendoTreeView Web 中
【发布时间】:2013-10-18 09:47:29
【问题描述】:
//treeview source
function populateTreeView(search) {
    debugger;

    var tree = $("#tvwResults").kendoTreeView({
        dataTextField: [{
            text: search.columnName,
            items: [{
                text: "activemeters"
            }]
        }],
        select: function (e) {
            console.log("Selecting ", e.node)
        },
        animation: {
            expand: {
                effects: "fadeIn expandVertical",
                duration: 600
            }
        }

    }).data("kendoTreeView");
    $.getJSON("http://127.0.0.2:6080/arcgis/rest/services/WW/WW2/MapServer/exts/RestSOE/Search%20Query?columnName=" + search.columnName + "&operand=" + search.operand + "&searchVal=" + search.searchVal + "&f=", function (data) {
        tree.dataSource.data(data);
    });
};

我真的在这里错过了一些东西。我可以在根节点中看到结果,显示两条记录,但是,“activemeters”子节点没有出现。我磕磕绊绊,感谢您的帮助。希望使用 KendoUI 将这些结果推送到枢轴网格中是一个很大的挫折,但该控件不存在。我只需要两列,首先列出表列名称,第二列显示详细信息。非常感谢您的帮助,在这里学到了很多东西。

【问题讨论】:

  • 我尝试添加这个:tree.append({ text: data.activemeters}), $("#tree .k-item:first");在 tree.dataSource.data(data) 之后;没有运气。
  • 你能分享一些你在树视图上设置的数据吗?或者,在 jsFiddle 或 jsBin 中重新创建问题?我认为您的 dataTextField 设置不正确。
  • 当然。这是我现有的数据,为了空间而减少:[ {“Account Num”:“210663845”,“Address”:“9 COUNTRY RD”,“City”:“HAMDENEE”,“Name_1”:“ANDREW SMITH”, “Name_2”:“”,“街道”:“GREEN ST”,“街道编号”:“25”,“activemeters”:“T30619-00T|30078309”},...

标签: javascript json kendo-ui kendo-grid kendo-treeview


【解决方案1】:

您显示的 JSON 不足以说明您的层次结构如何工作,因为这只是 1 级的 1 个节点,但您定义的 dataTextField 不正确。当它被指定为一个数组时,它应该是一个字符串数组,告诉树形视图在每个深度级别使用哪个字段作为节点的显示名称。

我想你想要这样的东西:

var tree = $("#tvwResults").kendoTreeView({
    dataTextField: ["Account Num", "activemeters"],
    select: function (e) {
        console.log("Selecting ", e.node)
    },
    animation: {
        expand: {
            effects: "fadeIn expandVertical",
            duration: 600
        }
    }
}).data("kendoTreeView");                                        

tree.dataSource.data([
    {
        "Account Num": "210663845",
        "Address": "9 COUNTRY RD",
        "City": "HAMDENEE",
        "Name_1": "ANDREW SMITH",
        "Name_2": "",
        "Street": "GREEN ST",
        "Street Num": "25",
        "items": [
            {"activemeters": "T30619-00T|30078309"}
        ]
    }
]);

【讨论】:

  • 谢谢。但是,默认情况下,“数组”没有任何深度。我是否将其与 JSON 对象混淆了?我的数据示例中的 ... 表示它在同一级别上重复。不确定我如何“获取”数据中的级别,因为它的格式不包括它。我可以添加另一个服务,该服务将与“activemeters”属性结合并包含 activemeters 的详细信息。这是您获得额外“级别”的地方吗?谢谢,正在努力掌握这一点。
  • 要么数据项应该包含它们的子项(就像我将数据放入 items [] 的示例中的情况一样),或者树视图可以发出另一个服务器请求以获取下一个级别父节点展开。如果来自服务器的数据将子节点展平为同一个对象,那么您可以使用 DataSource.schema.data docs.kendoui.com/api/framework/… 在客户端将其转换为 TreeView 的正确结构
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-22
  • 1970-01-01
  • 2012-09-12
  • 2018-10-16
  • 2019-03-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多