L'oggetto TreeView

giovedì 09 marzo 2006 - 21.28

vincenzo79a Profilo | Newbie

Salve ragazzi,
mi chiamo Vincenzo ed è la prima volta che scrivo.
Per prima cosa faccio subito i complimenti al sito molto ben realizzato.
Vi spiego subito il mio problema.
Ho una treeview popolata in modo dinamico con il codice che vi elenco.
Page_Load { if(!this.Page.IsPostBack) { populateRootNode() } }

populateRootNode() { OggettoBusiness oggettoBusiness = new OggettoBusiness() DataSet ds = oggettoBusiness.populateRootTreeView(); TreeNode nodoPadre = null; string urlRootImage = "....."; for(int i = 0; i<ds.Tables[0].Rows.Count;i++) { nodopadre = new TreeNode(dataSet.Tables[0].Rows[i][1].toString(), dataSet.Tables[0].Rows[i][0].toString()) treeViewClassifica.Nodes.Add(nodoPadre) } }

All'interno del tag <asp:TreeView........ ho inserito il seguente evento OnSelectedNodeChange da cui mi prendo i valori del nodo selezionato che passo successivamente ha una funzione che mi popola i relativi figli.
Da qui sorge il mio problema.
La prima volta che clicco sul nodo padre ho la popolazione dei figli.
Se successivamente riclicco sul nodo padre, mi vengono aggiunti nuovamente i figli.
Potete indicarmi dove sbaglio?
Vi giro anche il codice del selectedNodeChange()
{ OggettoModel oggettoModel = new OggettoModel(); oggettoModel.CartID = treeViewClassifica.selectedNode.Value; populateChildTreeView(oggettoModel, treeViewClassifica.SelectedNode); }

Spero in un vostro aiuto.
Grazie Vincenzo




Brainkiller Profilo | Guru

>Da qui sorge il mio problema.
>La prima volta che clicco sul nodo padre ho la popolazione dei
>figli.
>Se successivamente riclicco sul nodo padre, mi vengono aggiunti
>nuovamente i figli.
>Potete indicarmi dove sbaglio?

La prma cosa che mi viene in mente è la seguente, premetto che non ho esperienza sul caricamento dinamico di figli nella Treeview.Quando chiami la funzione di popolamento non riesci a verificare il numero di nodi collegati al nodo che stai popolando ?

Ossia:

if (nodo_da_popolare.Nodes.Length==0)
// Popola il nodo con sottonodi
else
// Il nodo è già stato popolato, fai qualcos'altro

No ?
Ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

vincenzo79a Profilo | Newbie

Ti ringrazio e credo anche di aver risolto.
Ho fatto in questo modo.
Mi prendo il nodo selezionato
Dopo di che faccio questo.
if(node.ChildNodes.Count == 0) { //Faccio la popalazione del nodo } else { //Non faccio niente. }
Per il momento sembra funzionare.
Farò qualche altro test e vediamo se può andare.
Grazie mille.
Vincenzo

totti240282 Profilo | Guru

non sarebbe meglio ogni volta ripulire la treeview e ripopolare ogni volta lameno il nodo interessato ,in modo da avere i dati sempre aggiornati ???
C'è solo un capitano !!!!!!

vincenzo79a Profilo | Newbie

Tu dici all'evento SelectedNodeChange?
Vincenzo

totti240282 Profilo | Guru

yes almeno solo per il nodo interessato.
C'è solo un capitano !!!!!!
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5