2017-04-16 27 views
1

我是C#和ASP.NET的新手,我有這個問題,需要爲數據庫中的所有元素顯示TreeView(父 - 子) 。在APS.NET WebForms中,無法顯示所有treenodes

我已經在Default.aspx.cs中編寫了這段代碼,它確實顯示了根(第一父母),但我無法獲得任何子項。你能幫我解決嗎? 在此先感謝。

的代碼如下:

namespace HierarchyApp 
{ 
    public partial class _Default : Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      if (!IsPostBack) 
      { 
       Populate_List(); 
      } 
     } 

     private void Populate_List() 
     { 
      List<Hierarchy_Table> All_Items = new List<Hierarchy_Table>(); 
      using (Hierarchy_DBEntities dc = new Hierarchy_DBEntities()) 
      { 
       All_Items = dc.Hierarchy_Table.ToList(); 
      } 
      CreateHierarchy(0, null, All_Items); 
     } 

     private void CreateHierarchy(int Parent_ID, TreeNode Parent, List<Hierarchy_Table> database_source) 
     { 
      List<Hierarchy_Table> new_database_source = database_source.Where(x => x.PARENT_ID.Equals(Parent_ID)).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); 
       } 
      } 
     } 
    } 
} 

回答

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

希望它可以幫助

相關問題