我正在使用MVC 5和最新版本的Telerik(以前的Kendo)UI用于ASP.NET MVC.我正在使用分层数据.我试图在_Layout视图中创建TreeView并使用网址或操作链接填充它.
我目前的代码:
在_Layout视图中:
@Html.Partial("_ProductTree")
Run Code Online (Sandbox Code Playgroud)
"_ProductTree"部分视图:
@(Html.Kendo().TreeView().Name("ProductTree")
.DataSource(d => d
.Model(m => m
.Id("ProductId")
.HasChildren("Categories"))
.Read(r => r.Action("_ProductTree", "Home")))
.DataTextField("ProductName"))
Run Code Online (Sandbox Code Playgroud)
行动方法:
[ActionName("_ProductTree")]
public JsonResult GetProductTree()
{
var products = _productBusinessService.GetProducts();
var result = products.Select(p => new
{
p.ProductID,
p.ProductName,
Categories= c.Categories.Any()
}).OrderBy(t => t.ProductName);
return Json(result, JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)
我有很多问题:
我已经尝试将TreeView Razor代码直接插入到_Layout视图中(不使用局部视图).我意识到我可能需要将action方法移动到基本控制器类中并在每个控制器中继承它以阻止它将列表附加到父节点.如果我不能尽快使用它,我可能不得不使用Kendo UI Professional或开源替代品.
你们当中有些人可能会想说这个问题已在其他地方得到解答. 我找到的帖子都没有解决使用Telerik TreeView填充和显示嵌套(多个深层)分层数据的问题.
有这篇文章
嵌套的DataSources和带有kendo ui的TreeView
但它适用于TreeView的JavaScript版本(不是MVC的UI)版本,并且尚未得到解答.
预先感谢您的帮助!