IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Récupérer les valeurs d'un Usercontrol dynamique


Sujet :

ASP.NET

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 3
    Par défaut Récupérer les valeurs d'un Usercontrol dynamique
    Bonjour à tous,

    Dans mon application, j'ai crée 18 UserControl que je charge dynamiquement sur ma page .aspx .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If strNomUserControl <> "" Then
                control = LoadControl("../UserControl/" & strNomUserControl)
                PanelQuest.Controls.Add(control)
     
            End If
    L'affichage fonctionne, le problème est que je n'arrive pas à récupérer les valeurs saisies pour pouvoir les enregistrer dans la base de données. A noter que, certains UserControl sont appelés plusieurs fois.

    Avez-vous des idées, ou une piste pour résoudre ce problème ?

    Merci d'avance.

  2. #2
    Membre éclairé Avatar de Nicopilami
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur sécurité

    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Par défaut
    Hello
    ce n'est pas une méthode jolie, mais est-ce qu'une piste ne serait pas d'utiliser les variables de sessions ?

    bye
    Nico

  3. #3
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par défaut
    En parcourant la collection Controls de PanelQuest, tu dois pouvoir récupérer les différents contrôles.

    Dans ton cas, le problème va résider dans le fait de connaître le type de chaque contrôle pour pouvoir en récupérer la valeur... sauf peut-être si tous tes UserControls implémentent une même interface permettant d'en récupérer la valeur ?

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 3
    Par défaut
    Chaque UserControl est différent , certains comprennent des RadioButton, d'autres des CheckBox ou encore des TextBox ...

    Tous les UserControls sont chargés dans le PlaceHolder, donc je ne connais pas l'ID du control.

    Du fait qu'ils soient chargés dynamiquement dans le Load, je ne peux pas intervenir sur les UserControl dans code-behind.

    J'ai fait un essai en créant un UserControl appelé WebUserControl1 composé d'un Label et d'une TextBox. Dans le code-behind, j'ai déclaré une variable Public strText de type String qui récupère la valeur saisie dans la TextBox.
    Dans la page Default.aspx, j'ai ajouté par Glisser/Deposer le WebUserControl1et j'ai ajouté un Label et un Button. Lors du click sur le Button, j'affecte à la properiété Text du Label : WebUserControl1.strText . Et cela fonctionne parfaitement, même si j'ajoute une 2e fois le WebUserControl (qui prendra l'ID WebUserControl2 automatiquement).


    Le gros problème est que lorsque je charge dynamiquement l'un des mes 18 UserControl, je ne connais pas l'ID et donc il m'est impossible de récuperer la valeur des controls de la même manière que précèdemment.

  5. #5
    Membre éclairé Avatar de Nicopilami
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur sécurité

    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Par défaut
    Citation Envoyé par lutaine Voir le message
    Le gros problème est que lorsque je charge dynamiquement l'un des mes 18 UserControl, je ne connais pas l'ID et donc il m'est impossible de récuperer la valeur des controls de la même manière que précèdemment.
    tu ne peux pas stocker l'ID ou plutot le type du controle en dehors du controle lui même au moment où tu l'ajoutes à la page (dans un "HiddenField" ou autre) ? ça te permettrait de récupérer cet ID au prochain postback et le réafficher...

    bye
    Nico

  6. #6
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    Citation Envoyé par lutaine Voir le message
    Le gros problème est que lorsque je charge dynamiquement l'un des mes 18 UserControl, je ne connais pas l'ID et donc il m'est impossible de récuperer la valeur des controls de la même manière que précèdemment.
    A toi de la définir manuellement ou selon une règle, afin de pouvoir les identifier facilement par la suite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    control = LoadControl("../UserControl/" & strNomUserControl)
    control.ID = "TonID"
    PanelQuest.Controls.Add(control)
    Sinon la proposition de Pongten est également recommandée. A savoir mettre en place une interface qui oblige à implémenter une méthode GetInformationsSaisies ou quelque chose dans ce genre là.

    En espérant t'avoir aidé.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 3
    Par défaut
    Après plusieurs recherches, j'ai trouvé une solution.

    J'ai déclaré un tableau d'UserControl : tbUserControl, auquel on ajoute le nom de chaque UserControl après l'avoir généré dynamiquement. Ce qui me permet donc de retrouver l'Usercontrol a l'aide de son indice.

    Ensuite je déclare une fonction par rapport au type de control que je souhaite récupérer , ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     Private Function StrOfTextBox(ByVal TxtNom As String, ByVal IdControl As String) As String
            Dim ControlUser As UserControl
            Dim obj As TextBox
     
            ControlUser = tbUserControl(IdControl)
            obj = ControlUser.FindControl(TxtNom)
     
            Return obj.Text
    End Function
    Qui me permet de récupérer les valeurs saisies dans les TextBox, en lui donnant le nom de la TextBox ainsi que l'indice de l'UserControl.

    Merci de votre aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer les valeurs de textboxes créées dynamiquement en JavaScript
    Par zakarinalaw dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 16/02/2014, 22h04
  2. Réponses: 5
    Dernier message: 20/12/2013, 21h23
  3. récupérer les valeurs d'un formulaire dynamique
    Par une_tite_question dans le forum Langage
    Réponses: 4
    Dernier message: 05/08/2008, 16h06
  4. Réponses: 1
    Dernier message: 26/02/2008, 11h51
  5. Récupérer les valeurs des champs créés dynamiquement
    Par outlawz dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 03/05/2006, 16h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo