begin process at 2012 05 27 16:50:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

WebForms

 > 

UserControl

 > 

Ajouter des controls


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Ajouter des controls

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ée 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

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,421 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales