Feedback

C# - Rekursion Treeview

Veröffentlicht von am 01.04.2006
(2 Bewertungen)
Treeview auf einer Tabelle aufgebaut
GFU-Schulungen  [Anzeige]

C# Grundlagen

Die Schulung vermittelt Ihnen die Grundlagen von C# in der Arbeit mit Datentypen sowie bei Klassenbibliotheken. Sie lernen, mit Variablen umzugehen und deren verschiedene Formen zu konvertieren. 

ASP.NET Core und Angular Komplett für .NET-Entwickler

Sie  lernen in drei (3) Tagen wie man mit  ASP.NET Core und den Technologien  MVC, Entity Framework, WebAPI und  Razor professionelle sowie moderne  Web-Anwendungsarchitekturen aufbaut.  Die Schulung ist der perfekte  Einstieg um insbesondere datengetriebene  und präsentationsorientierte  Applikationen auf Basis der robusten und  skalierbaren ASP.NET Core  Plattform zu erstellen. Nach der Veranstaltung kennen Sie die Konzepte von Angular und können Angular in neue und bestehende ASP.NET-Anwendungen einsetzen.

/* Grundlage: Tabellenaufbau
*  int Kategorie_NR *
*  string Kategorie_Name
*  int Oberkategorie
*/
private void Baum_Zeichen()
{
   /* Daten aus der Datenbank holen */
   System.Data.Oledb.Connection DB = new Connection;
   string TB_Name = "kategorien" ;
   string SQL = "SELECT * FROM " + TB_Name;
   DataBaseConnection.myDB.myDB_Command SQL_cmd = new DataBaseConnection.myDB.myDB_Command(SQL, DB);
   DataBaseConnection.myDB.myDB_DataAdapter DA = new DataBaseConnection.myDB.myDB_DataAdapter(SQL_cmd);
   System.Data.DataSet DS = new System.Data.DataSet();
   DA.Fill(DS,TB_Name);
   SQL_cmd.Dispose();

   /* Treeview löschen, da es neu aufgebaut wird*/
   trv_Baum_Kategorien.Nodes.Clear();

   /* den ersten Filter setzen, auf alle Hauptnodes */
   System.Data.DataView DV = new System.Data.DataView(DS.Tables[TB_Name1]);
   DV.RowFilter = "Oberkategorie is null";

   /* Prüfung ob es überhaupt Nodes gibt */
   if(DV.Count == 0) return;

   /* für den Fall das es nur einen rootNode gibt
   *  sonst ist hier eine Schleife erforderlich
   */
   TreeNode Nod = new TreeNode(DV[0]["Kategorie_Name"].ToString());
   Nod.ImageIndex = 0;                   //Bild setzen
   Nod.Tag = (int)DV[0]["Kategorie_NR"]; //ID speichert

   /* Rekursivier Aufruf */
   Baum_Vertiefen( Nod, DS, TB_Name);   

   /* Nodes dem Treeview übergeben */
   trv_Baum_Kategorien.Nodes.Add(Nod);
   
   /* 1. Konten öffnen */
   Nod.Expand();
}
private void Baum_Vertiefen(TreeNode nod_B,  System.Data.DataSet DS, string TB_Name)
{
   /* Neuen Filter anlegen */
   System.Data.DataView DV = new System.Data.DataView(DS.Tables[TB_Name]);
   DV.RowFilter = "Oberkategorie = " + nod_B.Tag.ToString();
   /* Durchlauf von allen gefunden Positionen */
   for (int k=0;k<DV.Count;k++)
   {
      /* Neue Nodes anlegen */
	TreeNode Neues_Nod = new TreeNode(DV[k]["Kategorie_Name"].ToString());
	Neues_Nod.Tag = (int)DV[k]["Kategorie_NR"];
      
      /* jedes Node die Unternodes durch erneuten aufruf
      *  an hängen */
	Baum_Vertiefen( Neues_Nod, DS, TB_Name);			
      /* Node dem Obernode anhängen */
	nod_B.Nodes.Add(Neues_Nod);
   }
}
Abgelegt unter Treeview, Rekursion, Tabelle.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!