Popolare un treeview con un db

sabato 12 gennaio 2008 - 18.34

Giovanni_3478 Profilo | Senior Member

Ciao

Programmo in C# con Visual Studio 2008

Sto usando un treeview:
è possibile popolare un treeview
prendendo i dati da un db?

Cteniza Profilo | Guru

Sicuramente si
Ma non credo che la risposta ti basti, ma tant'è mica hai chiesto come si fa

Giovanni_3478 Profilo | Senior Member

<tant'è mica hai chiesto come si fa

Hai ragione

Come si fa
e soprattuto è possibile con qualche criterio
creare una gerarchia di livelli?

Cioè
Item1 ---> subitem1 subitem2 subitem3
item2 ---> subitem1 subitem2 subitem3
item3 ---> subitem1 subitem2 subitem3

subitem1 ---> subsubitem1 subsubitem2 subsubitem3

e così via

Cteniza Profilo | Guru

Un treeview ha una collection Nodes (oggetto TreeNode)
Ciascun oggetto TreeNode ha una propria collection Nodes
A seconda della posizione in cui appendi i nuovi nodi ottieni la struttura a più livelli.
Di solito per fare questa cosa si partendo da un database si fa una lettura ricorsiva dei dati e si popolano i livelli
Un mio esempio che però non parte da un database ma sono convinto ti può aiutare
http://community.visual-basic.it/lucianob/archive/2006/04/25/17107.aspx

SSUPERPIPPO Profilo | Guru

Sul mio blog (link sotto), trovi un controllo personalizzato già pronto per la gestione del treeview popolandolo direttamente da un Dataset e non solo, potrai anche aggiungere, modificare, eliminare i nodi dal tuo Treeview riperquotendo le modifiche direttamente sul tuo DataSet.

La classe funziona fino a tre livelli annidati (Es. Nodo Principale > Nodo di Primo livello > Nodo di Secondo livello).

E' ancora in versione beta ma stà funzionando decisamente bene, con qualche modifica la puoi adattare a qualsiasi tua esigenza.

Ogni consiglio e, perchè no, critica, sono graditi.

Ciao

Alessandro

http://blogs.dotnethell.it/alebadalin

Giovanni_3478 Profilo | Senior Member

ciao

Mi siete stati di grande aiuto tutti e 2.

x Cteniza
dal tuo sito ho letto il codice

>questo in particolare (tradotto in C#) mi è servito
>Sub PopolaTreeView(ByVal Padre As Integer, ByVal NodoPadre As >TreeNode)

> For Each dr As DataRow In DsDati.Tables("Diba").Select("Padre = " & Padre.ToString())

> Dim nodo As New TreeNode(dr("Descrizione"))

> PopolaTreeView(CType(dr("Elemento"), Integer), nodo)

> NodoPadre.Nodes.Add(nodo)

> Next

> End Sub

Mi è stato molto utile

x Superpippo
sto creando un usercontrol simile al tuo
con la differenza che si possono creare infiniti livelli.
Quando è pronto se vuoi te lo invio.
Credo di fare un controllo meno curato comunque.

SSUPERPIPPO Profilo | Guru

Ci sto lavorando anch'io. Ho in previsione di pubblicarlo sul mio blog nel breve periodo.
Se hai bisogno di qualche dritta sono a disposizione.

Ciao

Alessandro

P.S.: Se ritieni esauriente l'aiuto fornito chiudi il post accettando una risposta. ciao


http://blogs.dotnethell.it/alebadalin
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5