我是严格按实例操作的,但不知为何,只出顶级菜单,不递归子菜单,搞了一天了,郁闷了
恳请各位帮忙看看问题到底出在那里?
谢谢!运行结果:数据库:
View:
@(Html.Kendo().TreeView()
.Name("treeview")
.DataSource(d => d
.Model(m => m
.Id("id")
.HasChildren("hasChildren")
.Children("Children"))
.Read(r => r.Action("TreeResult", "Home")))
.DataTextField("Name")
.ExpandAll(true)
)Controller: public JsonResult TreeResult(int? id)
{
TreeTablesRsy treeTablesRsy = new TreeTablesRsy();
var treeTables = treeTablesRsy.List().Where(m => m.Pid == id || m.Pid == null)
.Select(p => new
{
id = p.TreeId,
Name = p.NodeName,
hasChildren = p.Items.Any(),
Children = p.Items
});
return Json(treeTables, JsonRequestBehavior.AllowGet);
}Model: public partial class TreeTables
{
public TreeTables()
{
this.Items = new HashSet<TreeTables>();
}
public virtual ICollection<TreeTables> Items { get; set; }
/// <summary>
/// id
/// </summary>
[Display(Name = "TreeId")]
[Key]
public int TreeId { get; set; }
/// <summary>
/// p_id
/// </summary>
[Display(Name = "Pid")]
public int? Pid { get; set; }
/// <summary>
/// name
/// </summary>
[Display(Name = "NodeName")]
public string NodeName { get; set; }
}
恳请各位帮忙看看问题到底出在那里?
谢谢!运行结果:数据库:
View:
@(Html.Kendo().TreeView()
.Name("treeview")
.DataSource(d => d
.Model(m => m
.Id("id")
.HasChildren("hasChildren")
.Children("Children"))
.Read(r => r.Action("TreeResult", "Home")))
.DataTextField("Name")
.ExpandAll(true)
)Controller: public JsonResult TreeResult(int? id)
{
TreeTablesRsy treeTablesRsy = new TreeTablesRsy();
var treeTables = treeTablesRsy.List().Where(m => m.Pid == id || m.Pid == null)
.Select(p => new
{
id = p.TreeId,
Name = p.NodeName,
hasChildren = p.Items.Any(),
Children = p.Items
});
return Json(treeTables, JsonRequestBehavior.AllowGet);
}Model: public partial class TreeTables
{
public TreeTables()
{
this.Items = new HashSet<TreeTables>();
}
public virtual ICollection<TreeTables> Items { get; set; }
/// <summary>
/// id
/// </summary>
[Display(Name = "TreeId")]
[Key]
public int TreeId { get; set; }
/// <summary>
/// p_id
/// </summary>
[Display(Name = "Pid")]
public int? Pid { get; set; }
/// <summary>
/// name
/// </summary>
[Display(Name = "NodeName")]
public string NodeName { get; set; }
}
解决方案 »
- 重新发个贴子!简单问题~没办法!
- <script>的奇怪问题
- 有点难度,精通SQL进来看看
- 框架页的问题
- 用以下代码实现下载时,为什么打开两次“保存”对话框?
- DATAGRID,DropDownList,能用控件直接实现绑定吗?
- 烦人的datagrid问题,根据计算确定显示的值还有产生新的列
- 网站运营20天.alexa排名245,243,日IP:≈ 840
- 有没有《山西太原》的ASP.NET爱好者,你若是,请进!!!!
- TreeView问题,为什么我的程序里显示Treepaybasic未申明?
- 求助啊,为什么我这个查询总是出错呢?
- JsonConvert.SerializeObject序列化对象,对象里面含有虚方法的时候,怎么过滤?
@(Html.Kendo().TreeView()
.Name("treeview")
.DataSource(d => d
.Read(r => r.Action("TreeResult", "Home")))
.DataTextField("Name")
)
public JsonResult TreeResult(int? id)
{
TreeTablesRsy treeTablesRsy = new TreeTablesRsy();
var treeTables = treeTablesRsy.List().Where(m => m.Pid == id)
.Select(p => new
{
id = p.TreeId,
Name = p.NodeName,
hasChildren = treeTablesRsy.List().Any(x => x.Pid == p.TreeId),
expanded = true
});
return Json(treeTables, JsonRequestBehavior.AllowGet);
}
public partial class TreeTables
{
/// <summary>
/// id
/// </summary>
[Display(Name = "TreeId")]
[Key]
public int TreeId { get; set; }
/// <summary>
/// p_id
/// </summary>
[Display(Name = "Pid")]
public int? Pid { get; set; }
/// <summary>
/// name
/// </summary>
[Display(Name = "NodeName")]
public string NodeName { get; set; }
}