Creazione dinamica controlli loro richiamo

venerdì 05 ottobre 2007 - 11.56

LeonDom Profilo | Senior Member

bueas dias, so che anche questa volta mi aiuterete...

in un ciclo creo dinamicamente dei controlli label e dropdownlist in questo modo:

Dim label As Label = New Label
label.Text = ArrControllo(x).ToString() & "<BR>"
label.ID = "lbl" & r.ToString()
Panel1.Controls.Add(label)

Dim cbo As DropDownList = New DropDownList
cbo.ID = "cbo" & r.ToString()
cbo.DataSource = dsTable.Tables("Colonne")
cbo.DataTextField = dsTable.Tables("Colonne").Columns(1).ToString()
cbo.DataValueField = dsTable.Tables("Colonne").Columns(1).ToString()
cbo.DataBind()
Panel1.Controls.Add(cbo)

Fin qui nessun problema... ma quando al premere del Button devo andare a reperire i dati dai controlli appena creati, naturalmente non me li riconosce.
Come posso fare? ...






LeonDom

Wamba Profilo | Expert

Il problema è nella gestione del viewstate. Il viewstate mantiene il valore dell'albero dei controlli, ma non la struttura dell'albero. Tradotto se utilizzi controlli dinamici te li devi gestire completamente a mano. Le soluzioni sono diverse.
Prima di tutto, dato che lavori in un ciclo, perchè non usare un controllo repeter? Questo tipo di strumenti ripete la struttura dati da te creata ed ha una grande capacità di personalizzazione.
I controlli dinamici vanno usati con parsimonia e solo quando è strettamente necessario, proprio per i "problemini" con il viewstate.

Informazioni sul controllo reapeter: http://msdn2.microsoft.com/it-it/library/system.web.ui.webcontrols.repeater(VS.80).aspx (ci sono anche molti link che sembrano utili.)
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba

LeonDom Profilo | Senior Member

Grazie Wamba... meglio come dici tu. Ho già inserito i due repeater, infatti il mio caso è proprio come quello dell'esempio del link. Praticamente devo Importare un file .csv dando all'utente la possibilità di scegliersi la colonna del db dove inserire i dati.

come faccio a richiamarmi gli elementi del repeater?
LeonDom

Wamba Profilo | Expert

>Grazie Wamba... meglio come dici tu. Ho già inserito i due repeater,
>infatti il mio caso è proprio come quello dell'esempio del link.
>Praticamente devo Importare un file .csv dando all'utente la
>possibilità di scegliersi la colonna del db dove inserire i dati.
>
>come faccio a richiamarmi gli elementi del repeater?
>LeonDom

Intendi come leggere i valori dei Controlli lato server?
Credo tu debba usare la proprietà items e poi usare il FindControl.
Ora non ho tempo per spiegarti più nel dettaglio guarda qui: http://msdn2.microsoft.com/it-it/library/system.web.ui.webcontrols.repeater.items(VS.80).aspx

-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
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