66 messaggi dal 06 settembre 2002
Sto costruendo un web form. Tra le altre cose ho bisogno di generare dei controlli dinamicamente. Quando aggiungo questi controlli questi vengono rigenerati e i valori inseriti non vengono preservati automaticamente. Ma nella definizione viene indicato che comunque qualsiasi testo inserito viene conservato nello stato della visualizzazione. Ora io non riesco ad accedere a questi valori (della viewstate presumo). Ho provato anche a forzare l'inserimento associando per esempio all'evento onselectitemchange (di una dropdownlist) una sub che mi memorizzi il valore selezionato. Risultato non riesco ad assegnare al controllo generato dinamicamente il riferimento alla sub da eseguire.

questo è lo script che utilizzo:

'Aggiunge il controllo DropDownList
DDListBox = new DropDownList
DDListBox.ID = "DDListTipoContatti" & ViewState( "Contatti" )
DDListBox.Width = unit.percentage(100)
DDListBox.OnSelectedIndexChanged = "MemValore"
plhContatti.Controls.Add(DDListBox)


Attendo preziosi sugerimenti

Se c'è rimedio perchè preoccuparsi, se non c'è rimedio perchè preoccuparsi
252 messaggi dal 18 dicembre 2001
Ciao,
Il problema è comune. Quando generi controlli dinamicamente il posto giusto per riempirli è immediatamente prima del rendering ovvero nell'evento Page_PreRender.
Tuttavia assicurati che il tuo valore nella dropdownlist sia correttamente gestito andando a controllare nella Page.Request.Form("tuoiddropdownlist") se esiste un valore (stringa) :

If Page.Request.Form("dropdownlist1") <> "" Then
' il valore dovrebbe essere qui..
End If

Spero di esserti stato di aiuto.

Ciao.

Rei.
66 messaggi dal 06 settembre 2002
Il problema in realtà è un pò diverso. I valori inseriti nei controlli dinamici vengono persi o meglio non sono persistenti come tutti gli altri. Nella definizione che ho trovato risulta che comunque i valori inseriti sono memorizzati nella viewstate (almeno così ho capito) ma non riesco ad accederci. Ora io vorrei provare a leggere i valori della viewstate. Sarebbe già utile riuscire a scorrere tutti i valori memorizzati. In alternativa stavo cercando di forzare l'inserimento in variabili da me create nella viewstate tramite una sub attivata dall'evento SelectIndexChenge, ma non mi riesce di inserire questo evento. Ora ho trovato questo codice che provo e poi vi faccio sapere. (Così se funziona può essere utile a tutti) il codice è questo:

AddHandler DropList.SelectedIndexChanged, AndressOf Selection_Change

dove Selection_Change è la sub che voglio attivare. speriamo bene

Se c'è rimedio perchè preoccuparsi, se non c'è rimedio perchè preoccuparsi
252 messaggi dal 18 dicembre 2001
La viewstate trattiene i valori dei controlli creati dinamicamente quando sono delle semplici text. Il punto è che tu vuoi usare una dropdown. Io carico gli items della dropdown nell'evento page_init, poi per andare a vedere se c'è un valore uso la request. Ma nel momento in cui carichi i valori nella page_init non dovresti avere piu' problemi..
Fammi sapere.
Rei.

Rei.
Non ascoltare reim, si fa vedere una volta all'anno

Ciao

Il mio blog
Homepage
252 messaggi dal 18 dicembre 2001
Grazie della considerazione Ricciolino ;)... :PPPPP

Rei.
66 messaggi dal 06 settembre 2002
Eppure è stato utile ho risolto tutto, anzi più tardi posto il codice risolutivo del problema non si sa mai può essere utile. Diciamo che per far persistere i valori basta rigenerare i controlli dinamici nel page_load...

Se c'è rimedio perchè preoccuparsi, se non c'è rimedio perchè preoccuparsi

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.