【问题标题】:Kendo UI Treeview - nodes will not expandKendo UI Treeview - 节点不会展开
【发布时间】:2013-01-21 13:11:07
【问题描述】:

我目前使用的基本上是 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,但实际上并没有将任何内容添加到树视图中!

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

【问题讨论】:

    标签: asp.net-mvc kendo-treeview


    【解决方案1】:

    点击展开按钮时是否会出现加载动画?

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

    .DataTextField("text")
    

    【讨论】:

    • 我试过了,加载动画正在出现,JSON 正在返回,但没有添加任何内容。编辑:没关系,这似乎现在可以工作了!
    【解决方案2】:

    我有类似的问题。在我的情况下,删除 DataTextField 声明并定义 Template 解决了这个问题。

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

    更新: 这似乎是一个随机问题,我提出的修复方法并非一直有效。刷新页面后它有时可以工作,有时不能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-03
      • 1970-01-01
      • 2014-07-08
      • 1970-01-01
      • 1970-01-01
      • 2015-06-18
      • 1970-01-01
      相关资源
      最近更新 更多