Windows Azure Cloud Storage ermöglicht es Ihnen bereits ab 0,10€ pro GB/Monat die Vorteile der Cloud zu nutzen.
Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1550 | Anzahl registrierter User: 1839 | Besucher online: 52
Hauptmenü
Home
Top Ten
Zufälliger Snippet
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social

RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss ASP.NET
Partner
Member of Microsoft Community Leader/Insider Program (CLIP)

Rekursion Treeview


Autor: Meik Tenbergen
Sprache: C#
Bewertung:
noch nicht bewertet
Anzahl der Aufrufe: 12350
  
Kick it on dotnet-kicks.de  

Beschreibung:

Treeview auf einer Tabelle aufgebaut

Abgelegt unter: Treeview, Rekursion, Tabelle.



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/* 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);
   }
}
Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)



schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.