Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Aiutoooo Treeview
mercoledì 01 dicembre 2004 - 15.40
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Tantalo
Profilo
| Newbie
32
messaggi | Data Invio:
mer 1 dic 2004 - 15:40
In tutti gli esempi visti in rete la generazione del treeview non viene mai spinta oltre il secondo livello, in sostanza abbiamo
Padre1
|-------->Figlio1
|-------->Figlio2
Padre2
|-------->Figlio3
|-------->Figlio4
Ma se la situazione fosse questa:
Padre1
|-------->Figlio1
|-------->Figlio2
.................|--------> Figlio5
Il Figlio2 diventa a sua volta il padre di Figlio5.
Come viene gestita qiesta condizione ?
A titolo informativo vi incollo la funzione che attualmente ho sviluppato:
Public Function Categories()
Dim J As Integer
Dim parentNode As TreeNode
Dim id_categoria As Integer
Dim parentName As String
DBQuery.CommandText = "SELECT c.categories_id,cd.categories_name,c.parent_id FROM categories c LEFT JOIN categories_description cd ON c.categories_id = cd.categories_id ORDER BY c.parent_id,c.categories_id"
datRead = DBQuery.ExecuteReader
albero.BeginUpdate()
albero.Nodes.Clear()
While datRead.Read()
If (datRead("parent_id") = "0") Then
MessageBox.Show("PADRE " + datRead("categories_id"))
Me.albero.Nodes.Add(New TreeNode(datRead("categories_id")))
Else
parentName = datRead("parent_id")
parentNode = Nothing
For J = 0 To albero.Nodes.Count - 1
If albero.Nodes(J).Text = parentName Then
parentNode = albero.Nodes(J)
End If
Next
If Not (parentNode Is Nothing) Then
parentNode.Nodes.Add(datRead("categories_id"))
End If
End If
End While
albero.EndUpdate()
datRead.Close()
End Function
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
lun 6 dic 2004 - 01:19
Ciao,
non so se ho capito bene. Però per fare questo tipo di cose generalmente si usano le funzioni ricorsive ossai funzione che richiamano loro stesse e permettono fra le altre cose di scorrere un albero di qualsiasi tipo compreso il file system di files e cartelle.
Matteo ha scritto un utile articolo sulla ricorsività:
http://www.dotnethell.it/articles/FunzioniRicorsive.aspx
Allo stesso modo puoi popolare una Treeview.
ciao
david
Tantalo
Profilo
| Newbie
32
messaggi | Data Invio:
lun 6 dic 2004 - 11:31
Grazie Guru, mi vado a leggere subito l'articolo.
Ne approfitto per chiederti un'altra cosa sempre legata al treeview.
Quando creo una struttura ad albero aggiungo il nuovo elemento con Nodes.Add, ma come faccio a dire qual'è l'elemento che voglio visualizzato nell'albero e il valore che invece voglio legare all'elemento ? Add infatti non accetta parametri
Tantalo
Profilo
| Newbie
32
messaggi | Data Invio:
lun 6 dic 2004 - 17:49
Perfetto Guru, grazie all'articolo che mi hai indicato sono risuscito a realizzare una funzione ricorsiva che mi costruisce un treeview cion i nodi padre e figlio al loro posto.
Mi resta da risolvere il problema dell'assegnazione di un valore al nodo selezionato che sia diverso da quello visualizzato (ad esempio al Nodo Pippo associare il valore 12)
Qualcuno può darmi delle dritte ?
Torna su
Stanze Forum
Elenco Threads
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 !