在APS.NET WebForms中,无法显示所有的treenodes

时间:2017-04-16 07:03:49

标签: c# asp.net web-applications webforms

我是C#和ASP.NET的新手,我得到了这个,这需要为数据库中的所有元素显示TreeView(父子)。

我在Default.aspx.cs中编写了这段代码,它确实显示了root(第一个父母),但我无法得到任何孩子。你可以帮帮我吗? 提前谢谢。

代码如下:

videos = models.ManyToManyField(Video, blank=True, null=True, related_name='video')

1 个答案:

答案 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);
            }
        }

希望有所帮助