gpt4 book ai didi

c# - KendoUI 树状 View : remote data issue

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

我有一个 Kendo Treeview 。我正在使用 MVC4 和 KendoUI 的最新版本。
我也在使用 sql server 和 C#

假设我有一个名为“MyDB”的数据库和该数据库中名为“Products”的单个表。

表“产品”:
ID -- 整数 -- pk
名称 -- nvarchar(50)
父级 -- int -- FK

我想要一个产品有子产品...

好的,现在在 Controller 中我有:

 public JsonResult ProductsForTreeView(int? id)
{
var dataContext = new ProductsDBContext();
var products = from e in dataContext.Products
where ( id.HasValue ? e.Parent == id : e.Parent == 0)
select new
{
id = e.Id,
Name = e.Name,
hasChildren = e.Id
};

return Json(products , JsonRequestBehavior.AllowGet);
}

和观点:
@(Html.Kendo().TreeView()
.Name("treeview")
.DataTextField("Name")
.HighlightPath(true)
.DataSource(dataSource => dataSource
.Read(read => read
.Action("ProductsForTreeView", "SiteMap")
)
)
)

这可以正常工作并正确显示 Treeview (几乎!),除了 Treeview 在每个节点旁边显示 + ......无论它是否有子节点。

我需要修改我的 LINQ 或者甚至可能使用一些 JavaScript 来删除没有子元素的“+”...

“+”的类名是“k-icon k-plus”。

如何阻止 Treeview 将此“+”附加到每个节点?它应该只显示给有 child 的节点。

最佳答案

我认为问题在于您返回的 JSON 。如果您的 .hasChildren 属性设置为 true ,它将添加 expand('+') 图标。

所以你的 .hasChildren 属性应该有一个 bool 值,只有当 那个节点有 child / child 时才说 true 。在您的情况下,您使用了 e.Id 我认为它不是 bool 值。

试试这个:

hasChildren = e.Products.Any()

或者查看他们的文档。
http://demos.kendoui.com/web/treeview/remote-data.html

希望这可以帮助。

关于c# - KendoUI 树状 View : remote data issue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13903279/

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