2

TreeView最初のロードですべてのノードを表示する剣道を作りたいです。Kendo 'Binding to remote data' サンプルを使用していますが、正しく動作しません。最初のレベルのみを示しており、コントローラー アクションに渡される ID は常に null です。私を助けてください。

コードを表示:

@(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