2013-03-02 7 views
2

Я хочу создать Kendo TreeView, который показывает все узлы при первой загрузке. Я использую образец Kendo «Связывание с удаленными данными», но он работает неправильно. Он показывает только первый уровень, а идентификатор, переданный действию контроллера, всегда равен нулю. Пожалуйста, помогите мне.Kendo UI привязка к дереву

Посмотреть код:

@(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); 
} 

ответ

0

Я думаю, что в вашем яваскрипте коды id поля данных должно быть Id (быть осторожно к капитализации):

return { id : data.Id }; 
Смежные вопросы