【问题标题】:only expanded item showing in kendo treeview仅在剑道树视图中显示的扩展项目
【发布时间】:2018-10-31 10:11:56
【问题描述】:

我正在研究剑道和 .net mvc3。我的问题是当我点击展开按钮时,只显示展开的项目,但我希望它看起来像一个层次结构文件夹:

在父文件夹点击之前

----

当我点击展开按钮时

----

这是我的代码:

function OnSelectTree(Id) {
    var treeview = $("#PathTreeView").data("kendoTreeView").dataItem(Id.node);
    var treeview2 = $("#PathTreeView").data("kendoTreeView");
    console.log(treeview.Id);
    //treeview2.dataSource.read("Read", "ManagePhoto", new { path: id });
    treeview2.dataSource.read({ Id: treeview.Id });

   @(Html.Kendo().TreeView()
.Name("PathTreeView")
.DataTextField("Name")
.DataSource(dataSource => dataSource
    .Read(read => read.Action("Read", "ManagePhoto"))


)
.ExpandAll(true)
        .Events(e => e
                    .Select("OnSelectTree")
            //.DataBound("OnSelectTree1")
                    .Expand("OnSelectTree")
            )

和控制器

   public JsonResult Read(string Id)
        {
            string FileRepository = db.SystemParameter.Where(n => n.Key == "FileRepository").Select(n => n.Value).FirstOrDefault();
            //const string StartDirectory = @"D:\SOKMUpload\Upload";
            Id = Id ?? FileRepository;
            var files = Directory.GetFiles(Id).Select(file =>
                 new DownloadPhotoViewModel
                 {
                     Id = file,
                     hasChildren = false,
                     Name = Path.GetFileName(file)
                 });

        var directories = Directory.GetDirectories(Id).Select(dir =>
             new DownloadPhotoViewModel
             {
                 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 this.Json(result, JsonRequestBehavior.AllowGet);
    }

谢谢你,抱歉我的英语不好

【问题讨论】:

  • 您是否尝试过 kendo ui 提供的demo code 来构建您的treeView?你那里的树看起来很普通,所以不妨试试看。

标签: c# asp.net-mvc kendo-ui kendo-treeview


【解决方案1】:

(我的声誉很低,无法发表评论:()。 现在的问题(我认为)是您仅用子树替换整个数据源,而不是将其添加到当前数据源?

我还相信,如果有人在扩展时更改了目录/文件,您会遇到问题(因为您使用数字计数来判断扩展的位置?

请查看telerik demo,我不喜欢将路径发布到控制器,但我认为这是确保文件结构没有改变的最简单方法...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-30
    相关资源
    最近更新 更多