Kendo UI Treeview - 节点不会扩展

时间:2013-01-21 13:11:08

标签: asp.net-mvc kendo-treeview

我目前正在使用Kendo UI Treeview文档中的“远程数据”示例的副本......但是我似乎在加载任何子节点时遇到了问题。

查看:

<div class="treeview">
    @(Html.Kendo().TreeView()
        .Name("treeview")
        .DataTextField("Name")
        .DataSource(dataSource => dataSource
            .Read(read => read
                .Action("Pages", "Page", new { Area = "Admin" })
            )
        )
    )
</div>

方法:

public JsonResult Pages(int? id)
{
    var pages = _page.Items;

    if(id.HasValue)
    {
        pages = pages.Where(u => u.Parent.Id == id);
    }
    else
    {
        pages = pages.Where(u => u.Parent == null);
    }


    var pagesToReturn = from p in pages
                        select new {
                            id = p.Id,
                            text = p.Title,
                            hasChildren = p.Children.Any()
                        };

    return Json(pagesToReturn, JsonRequestBehavior.AllowGet);
}

但是出于某种原因,单击以展开节点似乎实际上没有做任何事情。如果我使用Firefox的Net选项卡查看数据传输,我可以看到它实际上是转到方法并为子节点返回正确的JSON,但实际上没有任何内容添加到树视图中!

我不确定在调试方面要尝试什么,我真的很难过。任何帮助/指示将不胜感激。

2 个答案:

答案 0 :(得分:1)

单击展开按钮时是否显示加载动画?

顺便说一句,您在 DataTextField 中使用了“ 名称 ”,但正如我在您的jSon上看到的那样,它未定义。它将为您提供“未定义”节点。尝试将其替换为“ text ”。

.DataTextField("text")

答案 1 :(得分:0)

我有类似的问题。在我的情况下删除DataTextField声明和定义模板修复了这个问题。

@(Html.Kendo().TreeView().Name("tvNodes")
          .DataSource(ds =>  ds.Read(read => read.Action("ReadLeafTreeNodes", "Classifications")))
          .Template("#=item.Text#")              

更新: 它似乎是一个随机问题,我提出的修复方法并不是一直都在运行。刷新页面后,它有时会起作用,有时却不起作用。