Ajouter un UserControl au runtime
Salut,
J'essaie d'ajouter un userControl contenant un gridview au runtime mais ce que je comprends, c'est qu'il faudrait que j'initialise la grille avant, mais je ne sais pas comment.
Si j'utilise ce usercontrol en le glissant directement dans ma page, ça fonctionne très bien et si j'utilise le code pour l'ajouter au runtime en créant un contrôle ordinaire comme un textbox, ça marche très bien aussi.
Mon but est d'utiliser un grille prédéfinit (dans le usercontrol) contenant des colonnes prédéfinit également. Je dois ajouter à ma page des grilles contenant des données selon des régions pouvant variées en genre et en nombre... c.i.e que je peux avoir un nombre inconnu de grille avec du data différents mais toujours les mêmes champs... le pourquoi du usercontrol...
Bref, dans ma page j'ai ce code :
Code:
1 2 3 4 5 6
|
Dim userCtrl As New ucProspectRemitterGrid
userCtrl = New ucProspectRemitterGrid()
userCtrl.InitializeAsUserControl(Me)
PlaceHolder1.Controls.Add(userCtrl)
userCtrl.LoadGrid() |
et dans le usercontrol j'ai le LoadGrid qui execute le code SQL (pas de bug) et le BindGrid suivant où ça plante
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
Private Function BindGrid() As Boolean
' Set the data source and bind to the Data Grid control.
Try
SetLanguageVariables()
mdvData = New DataView(mdtStoreData)
gvResult = New GridView
'bind the DataGrid to the Datatable
gvResult.DataSource = mdvData
'Rendu ici ça plante !
gvResult.Columns(mciColNom).HeaderText = msHeaderNom
gvResult.Columns(mciColTelephone).HeaderText = msHeaderTelephone
gvResult.Columns(mciColNomBeneficiaire).HeaderText = msHeaderNomBeneficiaire
gvResult.DataBind()
Return True
Catch ex As Exception
Response.Write(ex.Message )
Return False
End Try
End Function |
Aussitôt que j'atteins le code concernant les colonnes, j'ai un message d'erreur
Citation:
L'index était hors limites. Il ne doit pas être négatif et doit être inférieur à la taille de la collection. Nom du paramètre : index
Donc, il ne reconnaît pas mes colonnes car il ne les a pas encore définit... mais comment dois-je faire pour qu'il exécute le code du html ?
merci,
Sophie