gpt4 book ai didi

c# - 只有在 Kendo Treeview 中显示的扩展项目

转载 作者:行者123 更新时间:2023-12-03 22:52:01 24 4
gpt4 key购买 nike

我正在研究 Kendo 和 .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")
)

和 Controller
   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);
}

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

最佳答案

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

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

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

关于c# - 只有在 Kendo Treeview 中显示的扩展项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53080936/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com