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
ASP.NET 2.0 / 3.5 / 4.0
TreeView
giovedì 13 dicembre 2007 - 15.47
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Anubis
Profilo
| Junior Member
60
messaggi | Data Invio:
gio 13 dic 2007 - 15:47
ciao a tutti...
devo fare selezionare a un TreeView il nodo ke ha come proprietà .Name un determinato valore(codePrefix)... per farlo scorro i nodi del TreeView, usando qst codice...
int nodi = PlannedMaintenance_MainTreeView.Nodes.Count;
for (i = 0; i < nodi;i++ )
{
if (PlannedMaintenance_MainTreeView.Nodes[i].Text == codePrefix)
{
PlannedMaintenance_MainTreeView.SelectedNode = PlannedMaintenance_MainTreeView.Nodes[i];
}
}
il problema è ke si ferma al nodo principale, e non scorre i 3 sottonodi presenti...
potete aiutarmi x favore??
Wamba
Profilo
| Expert
722
messaggi | Data Invio:
gio 13 dic 2007 - 16:03
>
>int nodi = PlannedMaintenance_MainTreeView.Nodes.Count;
>for (i = 0; i < nodi;i++ )
> {
>if (PlannedMaintenance_MainTreeView.Nodes[i].Text == codePrefix)
> {
>PlannedMaintenance_MainTreeView.SelectedNode = PlannedMaintenance_MainTreeView.Nodes[i];
> }
> }
>
Ciao,
Purtroppo ora non ho il tempo di scriverti il codice cerco di spiegartelo brevemente:
PlannedMaintenance_MainTreeView contiene solamente il nodo root i nodi figli di root li trovi sotto root.Nodes (o simile) e così via.
Non ti basta scrivere un loop ma devi fare una funzione ricorsiva per tutto l'albero.
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
blogs.dotnethell.it/Wamblog/
Anubis
Profilo
| Junior Member
60
messaggi | Data Invio:
gio 13 dic 2007 - 16:10
non saprei proprio come fare qst funzione ricorsiva...
Wamba
Profilo
| Expert
722
messaggi | Data Invio:
gio 13 dic 2007 - 16:27
te la scrivo in meta linguaggio:
function AnalizzaNodi(ValoreDaTrovare, NodoCorrente)
{
//Controllo il nodo corrente
if(QuestoNodo.Prpdacercare == ValoreDaTrovare){return NodoCorrente;}
//Non è il nodo corrente provo con i figli
var NodoTrovato;
for (x = 0; x < NodoCorrente.Nodes.lenght; x++)
{
NodoTrovato = AnalizzaNodi(ValoreDaTrovare, NodoCorrente.Nodes[x];
if(NodoTrovato != null){return NodoTrovato;} //Era un figlio lo restituisco
}
return nothing //Non era in questo ramo restiotuisco nothing
}
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
blogs.dotnethell.it/Wamblog/
Anubis
Profilo
| Junior Member
60
messaggi | Data Invio:
ven 14 dic 2007 - 08:46
ho provato con questa funzione ricorsiva, ma sembra ke l'applicazione entri in un loop infinito...
io la prima volta la funzione ricorsiva la rikiamo così:
PlannedMaintenance_MainTreeView.SelectedNode = AnalizzaNodi(CodePrefix, PlannedMaintenance_MainTreeView.TopNode);
dato ke devo far selezionare all'albero il nodo ke ha come nome un certo valore...
è giusto rikiamarla la prima volta in questo modo o devo fare diversamente??
cmq il codice della mia funzione ricorsiva è il seguente...
public TreeNode AnalizzaNodi(string valore, TreeNode nodoCorrente)
{
//Controllo il nodo corrente
if(nodoCorrente.Name == valore){return nodoCorrente;}
//Non è il nodo corrente provo con i figli
TreeNode nodoTrovato = new TreeNode();
int x;
for (x = 0; x < nodoCorrente.Nodes.Count; x++)
{
nodoTrovato = AnalizzaNodi(valore, nodoCorrente.Nodes[x]);
if(nodoTrovato != null){return nodoTrovato;} //Era un figlio lo restituisco
}
return null; //Non era in questo ramo restiotuisco nothing
}
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 !