具有远程数据绑定的Kendo TreeView不显示子项

时间:2016-05-13 12:01:21

标签: c# kendo-ui telerik treeview

我正在尝试通过Kendo TreeView显示文件夹结构...如果我在视图中插入项目,它可以正常工作。当我尝试使用远程数据绑定时,它只显示父节点,并且没有可扩展的选项...即使文件夹中有其他文件夹/文件。这是代码:

Html.Kendo().TreeView()
            .Name("DownloadTreeView")
            .DataTextField("Name")
            .DataSource(dataSource => dataSource
                .Read(read => read.Action("GetFiles", "DownloadSettings"))
            )
            .ExpandAll(true)
            .Render();


public JsonResult GetFiles(string path)
    {
        const string StartDirectory = @"L:\dsms\assets";
        path = path ?? StartDirectory;
        var files = Directory.GetFiles(path).Select(file =>
            new DownloadTreeViewVM
            {
                Id = file,
                HasChildren = false,
                Name = Path.GetFileName(file)
            });

        var directories = Directory.GetDirectories(path).Select(dir =>
            new DownloadTreeViewVM
            {
                Id = dir,
                HasChildren = Directory.GetFiles(dir).Any() || Directory.GetDirectories(dir).Any(),
                Name = Path.GetFileName(dir)
            });

        var result = files.ToList();
        result.AddRange(directories);
        result = result.OrderBy(x => !x.HasChildren).ToList();

        return Json(result, JsonRequestBehavior.AllowGet);
    }

有什么想法吗?

提前谢谢。

1 个答案:

答案 0 :(得分:0)

你应该将你的参数作为可空字符串传递并将其重命名为id试试这个:

public JsonResult GetFiles(string? id)
{
  //then do your stuff
}

并从树视图中删除ExpandAll(true)