cs_elpens
Messages postés260Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention 3 novembre 2007
-
31 août 2006 à 15:53
cs_elpens
Messages postés260Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention 3 novembre 2007
-
5 sept. 2006 à 14:13
Bonjour, j'aimerais ajouter dynamiquement des controls dans un fichier ascx.
Voilà comment je procède, mais cela ne m'affiche que le dernier.
'Pour chaque person présente
For i
As
Integer = 0
To person.Length - 1
'Récupere le nom & prenom
Dim name()
As
String = Split(person(i),
" ")
'Procedure stockée qui me retourne le n° d'une personne
Dim homeNoCommand
As
New OleDbCommand(
"AAA_getNumber " & name(0) &
", " & name(1) &
", " & type, Conn)
Conn.Open()
Dim number
As
String = homeNoCommand.ExecuteScalar
Conn.Close()
'personPanel est un panel avec 3 control (les 3 en-dessous)
Dim myPane
As Panel = personPanel
'Affectation des différentes valeurs
cs_elpens
Messages postés260Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention 3 novembre 2007 5 sept. 2006 à 14:13
Ben voilà, après quelques heures, j'ai enfin trouvé un moyen :
Dim personCtr
As
New personPane
personCtr =
CType(LoadControl(
"personPane.ascx"), personPane)
personCtr.FirstName = name(0)
personCtr.LastName = name(1)
personCtr.phoneNumber = number
phonePanel.Controls.Add(personCtr)
Et il m'ajoute mes petits panel.
cs_Nurgle
Messages postés1642Date d'inscriptionsamedi 6 novembre 2004StatutMembreDernière intervention28 avril 20114 31 août 2006 à 22:25
Salut,
Le problème dans ton code est qu'en réalité tu crées pas de "personPanel" à chaque iteration, tu crées juste une variable "myPane" qui pointe vers le "persoPanel" d'origine !
Si "personPanel" est un Panel que tu as ajouté à ta page, tu vas plutôt l'enlever et d'abord créer un custom control, qui va hériter de Panel, et qui va lui-même contenir trois labels, et qui lui va s'appeller PersonPanel.
Et ensuite tu fais :
Dim myPane As New PersonPanel()
'Affectation des différentes valeurs
CType(myPane.FindControl("fNameVal"), Label).Text = name(0)
CType(myPane.FindControl("lNameVal"), Label).Text = name(1)
CType(myPane.FindControl("phoneNo"), Label).Text = number
Dim myPane As New PersonPanel()
'Affectation des différentes valeurs
CType(myPane.FindControl("fNameVal"), Label).Text = name(0)
CType(myPane.FindControl("lNameVal"), Label).Text = name(1)
CType(myPane.FindControl("phoneNo"), Label).Text = number
Mais j'obtient l'erreur : Object reference not set to an instance of an object.
Et si je test myPane.fNameVal = name(0) l'erreur est : myPane.fNameVal is not accessible in this context because it is 'Protected