【发布时间】: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