我是C#和ASP.NET的新手,我得到了这个,这需要为数据库中的所有元素显示TreeView(父子)。
我在Default.aspx.cs中编写了这段代码,它确实显示了root(第一个父母),但我无法得到任何孩子。你可以帮帮我吗? 提前谢谢。
代码如下:
videos = models.ManyToManyField(Video, blank=True, null=True, related_name='video')
答案 0 :(得分:0)
您的CreateHierarchy
方法存在问题。
这一行List<Hierarchy_Table> new_database_source = database_source.Where(x => x.PARENT_ID.Equals(Parent_ID)).ToList();
对我来说并不合适。您真正应该关注的是当前父节点的ID值。
以下是更新的代码示例
private void CreateHierarchy(int Parent_ID, TreeNode Parent, List<Hierarchy_Table> database_source)
{
List<Hierarchy_Table> new_database_source = database_source.Where(x => Parent == null ? x.PARENT_ID == 0 : x.PARENT_ID.Equals(int.Parse(Parent.Value))).ToList();
foreach (var item in new_database_source)
{
TreeNode newItem = new TreeNode(item.NAME, item.ID.ToString());
if (Parent == null)
{
Hierarchy_Menu.Nodes.Add(newItem);
}
else
{
Parent.ChildNodes.Add(newItem);
}
CreateHierarchy(item.ID, newItem, database_source);
}
}
希望有所帮助