Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Ajouter des controls [ WebForms / UserControl ] (elpens)

jeudi 31 août 2006 à 15:53:30 | Ajouter des controls

elpens

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 AsInteger = 0 To person.Length - 1
   'Récupere le nom & prenom
   Dim name() AsString = Split(person(i), " ")
   'Procedure stockée qui me retourne le n° d'une personne
   Dim homeNoCommand AsNew OleDbCommand("AAA_getNumber " & name(0) & ", " & name(1) & ", " & type, Conn)
  
   Conn.Open()
   Dim number AsString = 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
   CType(myPane.FindControl("fNameVal"), Label).Text = name(0)
   CType(myPane.FindControl("lNameVal"), Label).Text = name(1)
   CType(myPane.FindControl("phoneNo"), Label).Text = number

   'Ajoute le panel dans le plus grand panel
   phonePanel.Controls.Add(myPane)
Next

Mais voilà, comme dit plus haut, seule la dernière personne apparait.

Merci d'avance, et bon après-midi

 ElpenS

jeudi 31 août 2006 à 22:25:01 | Re : Ajouter des controls

Nurgle

Membre Club Administrateur CodeS-SourceS
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


A++


Nurgle (Antoine)

vendredi 1 septembre 2006 à 08:46:11 | Re : Ajouter des controls

elpens

Je suis désolé, mais je n'ai pas réussi...

J'ai créer un control ascx (personPane) que j'ai registré dans PhonePane comme ceci :

<%

@RegisterSrc="personPane.ascx"TagName="persoPane"TagPrefix="ucPerson" %>

Ensuite, j'ai fait :

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

Merci pour ton aide

 ElpenS

vendredi 1 septembre 2006 à 16:34:11 | Re : Ajouter des controls

Nurgle

Membre Club Administrateur CodeS-SourceS
Eh bien, utilises des propriétés, dans ton PersonPanel :

Public Property FirstName As String
   Set(value As String)
      Me.fNameVal.Text = value
   End Set
   Get
      Return Me.fNameVal.Text
   End Get
End Property

Et tu fais pareil pour LastName et PhoneNumber, et comme ça tu n'as plus qu'à faire :

myPane.FirstName = name(0)
myPane.LastName = name(1)
myPane.PhoneNumber = number

A++


Nurgle (Antoine)

lundi 4 septembre 2006 à 09:56:57 | Re : Ajouter des controls

elpens

Merci, mais cela ne fonctionne toujours pas  ...

J'obtient toujours l'erreur :  {"Object reference not set to an instance of an object."}

C'est bien la m.....

A+ et merci

 ElpenS

lundi 4 septembre 2006 à 18:19:22 | Re : Ajouter des controls

Nurgle

Membre Club Administrateur CodeS-SourceS
Quelle ligne exactement te renvoie cette erreur ?



Nurgle (Antoine)

mardi 5 septembre 2006 à 08:04:53 | Re : Ajouter des controls

elpens

Hello,

C'est la ligne dans les propriétés de mon personPanel :

Me.fNameVal.Text = value

Merci

 ElpenS


mardi 5 septembre 2006 à 11:45:56 | Re : Ajouter des controls

elpens

En fait, quand je debug, il me met l'erreur a la ligne que je t'ai indiqué avant.

Mais quand je regarde la stack (at personPane.get_FirstName()),  la ligne indiquée est la suivante : Return Me.fNameVal.Text

Voilà, encore merci pour tout


 ElpenS


mardi 5 septembre 2006 à 14:13:21 | Re : Ajouter des controls

elpens

Réponse acceptée !
Ben voilà, après quelques heures, j'ai enfin trouvé un moyen :

Dim personCtr AsNew 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.

Merci encore Nurgle pour ton aide

Bon après-midi a tous.

 ElpenS



Cette discussion est classé dans : ajouter, controls, panel, name, mypane


Répondre à ce message

Sujets en rapport avec ce message

Panel se remplissant dynamiquement [ par systemic_anomaly ] Bonjour tt le monde,J'ai un panel qui au page load est composé sur une ligne horizontale de plusieurs textbox et labels et un bouton "Ajouter" (qui pr Multiple controls with the same ID [ par systemic_anomaly ] Bonjour tt le monde,J'utilise un place holder et j'ajoute un control (TableMenu). Pas de problème lors du page load mais au postback j'ai ce message d Envoi d'une reponse auto via un petit formulaire [ par kclaude ] Hello,Je viens de passez quasi 24H à ecumer la toile pour trouver une reponse a ma petite question qui me parait infranchissable vue ma petite connais requete SQL pour ajouter un champ dans une table [ par bakchlada ] salut tout le monde ,bon voila , j'ai une probleme (normal sinon je ne posterai pas ici) .......... bon bah c'est con de demander ça , mais je debute Installation du IIS [ par richch ] Salut,Je désire installer IIS sur mon PC, j’ai cherché dans la rebrique « ajouter ou supprimer des composantes Windows » j’ai ne pas trouvé dans la li impression d'un panel apartir d'une page aspx [ par swiniya ] Hello everybody!!je veux imprimer un panel apartir d'une page aspx mais je sais pas comment faire?!!aidez moi svp!! FindControl - Acceder a mes controls crées dinamiquement [ par edokt ] Bonjour Encore des problems J'ai une page aspx avec 2 bouton et un placeholder Premier bouton cree un control textbox dans le placeholder avec le positionner mes controls [ par yohan49 ] salut les gars , je debute en asp.net C#quand je veux rajouter sur ma page des controls , je n'arrive pas a les positionner au coordonée de mon choixs Ajouter ligne manuellment dans un datagrid [ par Myke ] Est-il possible d'ajouter une ligne dans un datagrid sans le lier à une BD par un dataset ou datareader. Myke ASP.NET : Panel WebForm et table HTML [ par vlaad ] Bonjour,J'ai un tableau dans lequel je souhaite mettre, dans une de ses cellules, deux WebControls Panel collés l'un à l'autre.Le problème que je renc


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,312 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.