2

我想制作一个TreeView在第一次加载时显示所有节点的剑道。我正在使用 Kendo 'Binding to remote data' 示例,但它不能正常工作。它只显示第一级,传递给控制器​​操作的 id 始终为空。请帮我。

查看代码:

@(Html.Kendo().TreeView()
    .Name("treeview")
    .DataTextField("Title")
    .ExpandAll(true)
    .LoadOnDemand(false)
    .DataSource(dataSource => dataSource
    .Read(read => read.Action("Employees", "Follow").Data("addData"))))

 function addData(data) {
    return { id: data.id };
}

控制器代码:(控制器Follow

public System.Web.Mvc.JsonResult Employees(int? id)
{
    System.Collections.Generic.List<FollowType> List =
        new System.Collections.Generic.List<FollowType>();

    if (id.HasValue == true) {
        List = FollowTypeList.FindAll(current => current.ParentId == id);
    } else {
        List = FollowTypeList.FindAll(current => current.ParentId == null);
    }

    System.Collections.Generic.List<Kendo.Mvc.UI.TreeViewItemModel> NodeList =
        new System.Collections.Generic.List<Kendo.Mvc.UI.TreeViewItemModel>();

    foreach (CommonData.Domain.FollowType item in List)
    {
        NodeList.Add(new Kendo.Mvc.UI.TreeViewItemModel() { 
            Id = item.Id.ToString(), 
            Text = item.Title, 
            HasChildren = FollowTypeList.Exists(c => c.Id == item.ParentId) 
        });
    }

    return Json(NodeList, System.Web.Mvc.JsonRequestBehavior.AllowGet);
}
4

1 回答 1

0

我想在你的javascript代码中,id数据字段应该是Id(注意大写):

return { id : data.Id };
于 2013-04-15T14:34:03.130 回答