Ho un GridView
con un numero di BoundFields
e due TemplateFields
. In questi due TemplateFields
, creo dinamicamente UserControls
contenente un DropDownList
e un TextBox
, che gli utenti possono modificare.colonne dinamiche scompaiono dopo il postback
Quando si tenta di ottenere i valori dei controlli dopo un PostBack
, i valori in BoundFields
sono ancora lì ma i miei controlli dinamici scompaiono. Posso creare di nuovo ma non otterrà i valori dell'utente ... Come posso ottenere questi valori prima che siano persi?
Ecco alcuni del mio codice:
In caso RowDataBound
:
Select Case type
Case "BooleanBis"
e.Row.Cells(2).Controls.Clear()
Dim list1 As BooleanBisList = New BooleanBisList(avant, False)
e.Row.Cells(2).Controls.Add(list1)
e.Row.Cells(4).Controls.Clear()
Dim list2 As BooleanBisList = New BooleanBisList(apres, True)
e.Row.Cells(4).Controls.Add(list2)
Case "Boolean"
e.Row.Cells(2).Controls.Clear()
Dim list3 As BooleanList = New BooleanList(avant, False)
e.Row.Cells(2).Controls.Add(list3)
e.Row.Cells(4).Controls.Clear()
Dim list4 As BooleanList = New BooleanList(apres, True)
e.Row.Cells(4).Controls.Add(list4)
End Select
Nel mio pulsante evento click, cerco di ottenere il controllo utente:
Case "String"
temp.ChampValeurApres = DirectCast(Tableau1.Rows(i).Cells(selectedColumn).Controls(1), TextBox).Text
ma ottengo l'errore che non esiste
Grazie mille! Ho ancora un problema, ho una colonna con controlli di sola lettura. e il valore di questi controlli non viene recuperato dopo il postback. qualche idea ? – user874854
@ user874854: i controlli 'readonly' non mantengono le modifiche sul client in ViewState (solo le modifiche su serveride). Renderli 'readonly' tramite [Attributes] (http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.webcontrol.attributes.aspx) -collection, ad esempio:' TextBox1.Attributes .Add ("sola lettura", "sola lettura"); '. In questo modo prendi in giro ASP.NET. Guarda [qui] (http://www.codeproject.com/KB/aspnet/Readonly.aspx) per ulteriori informazioni. –