Treeview_selecteIndexChange

lunedì 28 agosto 2006 - 12.06

antovitae Profilo | Newbie

ciao ragazzi...
sto realizzando una webform con vb.net, in cui ho inserito una treeview della microsoft.web.ui.webcontrols.
l'ho popolata dinamicamente e vorrei che quando viene cliccato un nodo padre o figlio vengano riportate alcune informazioni in una list view....ho cercato di usare l'evento selectedIndexChange ma per farlo intercettare devo impostare il paramentro AutoPostBack della treeview su true....il problema che questo porametro ogni volta che clicco su un nodo padre per espanderlo in automatico me lo richiude rendendo impossibile la visualizzazione dei dati....
come faccio ad usare l'evento treeview_selecteIndexChange senza impostare l'autopostback?

bluland Profilo | Guru

non ho capito molto bene!
allora hai un treeview ed un listbox

il treeview e' caricato di dati dinamicamente e tu vorresti che appena selezioni un nodo del treeview nella listview vengano visualizzate le relative info di quel nodo?? giusto ho capito bene??

ora abilitando autopostback e selezionando il nodo cosa succede??

saluti

ENzo

antovitae Profilo | Newbie

il treeview e' caricato di dati dinamicamente e tu vorresti che appena selezioni un nodo del treeview nella listview vengano visualizzate le relative info di quel nodo?? giusto ho capito bene??
-si hai capito perfettamente

ora abilitando autopostback e selezionando il nodo cosa succede??
- in pratica uso l'evento SelectedIndexChange che si attiva ogni qualvolta viene selezionato un nodo o una foglia ma solo se la proprietà del treeview autopostback è impostato su true...il problema che se setto l'autopostback su true ogniqualvolta apro un nodo padre di default si richiude (è come se ricariscasse la pagina) e non accedo ai nodi figli....

questo è il problema principale....
come faccio a capire quando l'utente apre o chiude un nodo o si posiziona su un altra foglia senza usare l'autopostback?

se non sono stato chiaro ti posto il codice
grazie mille
antonio

antovitae Profilo | Newbie

tralascio la fase di caricamento della treeview perchè funziona correttamente e ricordo che la proprietà autopostback è settata su true se non il non riesco ad far eseguire l'evento selectindexchange

Private Sub TreeView1_SelectedIndexChange(ByVal sender As Object, ByVal e As Microsoft.Web.UI.WebControls.TreeViewSelectEventArgs) Handles TreeView1.SelectedIndexChange
Dim nodo As String
nodo = TreeView1.GetNodeFromIndex(e.NewNode.ToString).Text

ValoreRDA.Text = nodo

End Sub

in pratica ogniqualcolta l'utente si sposta da un nodo all'altro nella textbox 'valoreRDA' vengono caricate delle informazioni e funziona correttamente.....il problema è che l'autopostback mi chiude ogni nodo ogni volta che lo apro, in pratica fa un aggiornamento della pagina e non riesco ad accedere ai nodi o alle foglie figlie....
se imposto invece l'autopostback a false l'evento selectedindexchange non mi funziona più, nel senso che non viene eseguito...come devo fare?
grazie per l'attenzione, mi sto impallinando su sta cosa....

bluland Profilo | Guru

scusa ma hai gestito il postback?

edit:

mi spiego meglio: hai messo caricamento del treeview nel pageload???

ma la hai inserito in questo modo:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra


usando il postback o senza?
perche' se e' senza e' normale che ti faccia questo effetto.
saluti

ENzo

antovitae Profilo | Newbie

si ho gestito il postback
se no lo faccio l'eventi selectedindexchange non va

bluland Profilo | Guru

ok allora assicuratoci che questo non e' ti chiedo ma la proprieta' del treeview selectexpands e' true o false???

per funzionare dovrebbe essere a true!!

prova


saluti

ENzo

antovitae Profilo | Newbie

intanto vi annuncio che funziona....siete dei grandi...
usando il not postback in fase di caricamento e settando la proprieta autopostbak a true riesco a fare quello che mi occorre....
unico dubbio: ogni volta che seleziono un nodo o una foglia esegue un aggiornamento di pagina senza alterare la selezione però (quindi va già benissimo) si può evitare di far eseguire quell'aggiornamento o è neccesarrio all'eseguzione del comando.....
questa ovviamente vuole essere una finezza...

intanto mille grazie!!!!

bluland Profilo | Guru

>intanto vi annuncio che funziona....siete dei grandi...
>usando il not postback in fase di caricamento e settando la proprieta autopostbak a true riesco a fare quello che mi occorre....

allora era quello il problema, beh l'avevo detto!!

>unico dubbio: ogni volta che seleziono la un nodo o un foglia esegue un aggiornamento di pagina senza alterare la seleziona però >(quindi va già benissimo) si può evitare di far eseguire quell'aggiornamento o è neccesarrio all'eseguzione del comando.....
>questa ovviamente vuole essere una finezza...

beh e' una finezza che costa tanto lavoro, dovresti usare Ajax, il che non e' per niente immediato!!

eccoti un link interessante (in inglese): http://www.ajaxpro.info/

>intanto mille grazie!!!!

prego e non dimenticare di chiudere il thread
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