2

我正在尝试使用 Telerik 的 KendoUI 并从通用处理程序获取树视图以绑定到动态 JSON。

在我的通用处理程序中,我使用 Newtonsoft.Json 将 List 转换为我的 JSON 结果,效果很好,甚至可以与不同的 KendoUI 控件(图表)一起使用。

就构建树视图的 javascript 而言,这是我所拥有的:

var treeSource = new kendo.data.DataSource({
                transport: {
                    read: {
                        url: "Services/CategoryHandler.ashx",
                        dataType: "json",
                        contentType: "application/json; charset=utf-8",
                        type: "GET"
                    }
                }
            });

            $("#treeview").kendoTreeView({
                dataSource: treeSource
            });

以下是返回 JSON 的简短示例:

[
   {
      "text":"Node 1",
      "expanded":true,
      "items":null
   },
   {
      "text":"Node 2",
      "expanded":true,
      "items":null
   }
]

“项目”将是树中的子集合。

当我将项目直接添加到数据源时,例如:

var treeview = $("#treeview").kendoTreeView({
                            dataSource: [
                                { text: "Item 1", expanded: true, items: [
                                    { text: "Item 1.1" },
                                    { text: "Item 1.2" },
                                    { text: "Item 1.3" }
                                ] },
                                { text: "Item 2", items: [
                                    { text: "Item 2.1" },
                                    { text: "Item 2.2" },
                                    { text: "Item 2.3" }
                                ] },
                                { text: "Item 3" }
                            ]
                        })

它工作得很好。当我调用一个写出 JSON 的服务时,它只是不起作用,我的意思是它不起作用,没有数据显示,它是空白的。

关于我可能遗漏的任何想法或关于如何验证我的数据甚至从服务返回甚至正确填充我的数据源的指导?

谢谢

4

2 回答 2

3

重要2012 年 11 月 8 日,KendoUI 已经支持它。

Kendo TreeView 还不支持绑定到数据源。好消息是,这已在计划中,并将很快实施(下一个版本)。

于 2012-01-04T21:33:37.123 回答
0

它对我有用。我在控制器上使用带有 Json 序列化的动态 ViewBag,因此,节点绘制得很好。

我的问题是这些事件似乎无法正常工作。例如,我想捕捉 onDrop 并发出警报以显示此类节点的实际值,而是显示所有节点的文本。顺便说一句,这让我发疯。

这是我的代码,希望可以帮助别人。

    function onDrop(e) {
        alert(treeView.text(e.sourceNode));
    }

必须分配模板才能工作:

template: "<span rel='#= item.Id #'> #=item.text #</span>",
于 2012-04-11T04:19:02.500 回答