2017-04-16 4 views
1

私はC#とASP.NETのことで初めてです。データベースのすべての要素に対してTreeView(親子)を表示する必要がある。APS.NET WebFormsでは、すべてのツリーノートを表示することができません

私はこのコードを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); 
      } 
     } 

はそれが

を役に立てば幸い更新されたコードサンプルです
関連する問題