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 :

[VB.NET] - affichage de webcontrols dynamiquement


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 114
    Par défaut [VB.NET] - affichage de webcontrols dynamiquement
    Bonjour,

    j'ai un gros soucis, je dois créer ma page dynamiquement grâce à une hashtable qui comprend pour key:un identifiant et pour value:un webcontrols (ex: textbox,label,...)

    voilà et cela j'y arrive, le problème c'est que je n'arrive pas à récuperer ensuite les valeurs qui ont été mis dans par exemple un textbox.
    Voici un bout de code pour que vous compreniez mon souci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    'l'instanciation de mon objet
    maCollection.Add("TexteLong/" & champElement.Libelle, textelong((CType(champElement.Valeur, String))))
     
    'quand j'ai un type textbox je l'affiche
    Me.Controls.Add(CType(Me.maCollection.Item(maClef), textbox))
     
    'mais je n'arrive pas à récuperer le text qui a été ajouter dans ce textbox
    Dim monTextBox As textbox = CType(maCollection.Item("TexteLong/" & monLibelle), textbox)
    monString = monTextBox.Text
    voilà je n'arrive pas à récuperer ce qui a été saisie par l'utilisateur.
    donc si la solution existe, dite le moi dans le cas contraire aussi
    merci d'avance

  2. #2
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 114
    Par défaut
    Bon, je modifie ma question puis je ou pas marquer mon textbox? avec par exemple: monTextBox.ID = "monID"

    Cela me permettrait de récupérer ensuite mon control grâce à cette identifiant.

  3. #3
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    Citation Envoyé par karibouxe
    Bon, je modifie ma question puis je ou pas marquer mon textbox? avec par exemple: monTextBox.ID = "monID"

    Cela me permettrait de récupérer ensuite mon control grâce à cette identifiant.
    Oui

  4. #4
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 114
    Par défaut
    Par contre, je peux marquer mon textbox avec "monID" mais je ne peux pas le récuperer même avec ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Dim monTextBox As New textbox
    monTextBox.ID = "monID"
    Me.Controls.Add(monTextBox)
     
    Dim myControl As textbox = CType(Me.FindControl("monID"), textbox)
    Dim toto as String = myControl.Text
    voilà en gros, le findcontrol ne trouve rien donc mycontrol n'est jamais instancié


    Si quelqu'un a une idée ...

  5. #5
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    Citation Envoyé par karibouxe
    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim monTextBox As New textbox
    monTextBox.ID = "monID"
    Me.Controls.Add(monTextBox)
    Dim myControl As textbox = CType(Me.FindControl("monID"), textbox)
    Dim toto as String = myControl.Text
    ...
    essayes en le debuggant pas à pas avec les bons espions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    Dans Page_Init...
       InitializedComponent()
       MonInit()
     
    ...
    Et Dans Page_Load
       Maprocedure("monID")
     
    ....
    Sub MonInit()
       Dim monTextBox As New textbox()
       monTextBox.ID = "monID"
       monTextBox.text= "toto"
       Me.Controls.Add(monTextBox)
       Maprocedure("monID")
    End Sub
     
    Sub Maprocedure( nom as string)
       Dim myControl As control= FindControl(nom)
       Dim mytextbox As textbox= CType(myControl , textbox)
       Dim texte as String = mytextbox.Text
    End Sub

  6. #6
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 114
    Par défaut
    Bon oui, si je mets mon Me.controls.add ... dans mon page_init ça marche mais sinon ça ne marche pas. Donc, je te remercie je vais me débrouiller avec ça. En le mettant dans mon Page_init.
    Mais petites question, pour comprendre ce que fait page_init :
    - est ce que InitializeComponent() vide tout mes controls et donc je suis obligé de reréférencer monControls ensuite avec monInit()
    - page_Init est il appelé à chaque click? du style update

    Sinon ba pour moi,c'est résolu. (je sais pas mettre la balise résolu )
    Merci beaucoup neguib

  7. #7
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    Citation Envoyé par karibouxe
    ...Sinon ba pour moi,c'est résolu. (je sais pas mettre la balise résolu )...
    edite ton premier message et rajoute le tag à ton titre


    page_Init initialise la page avant de la cherger(page_load)
    tu ne dois pas toucher à InitializedComponent met tu peux ajouter du code après

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

Discussions similaires

  1. [VB.NET] affichage dans un tableau créé dynamiquement
    Par elastoplas dans le forum ASP.NET
    Réponses: 3
    Dernier message: 10/11/2006, 08h25
  2. [VB.NET] - affichage dynamique dans un tableau
    Par karibouxe dans le forum ASP.NET
    Réponses: 8
    Dernier message: 20/06/2005, 15h07
  3. Réponses: 2
    Dernier message: 29/11/2004, 12h13
  4. affichage de tableau dynamique
    Par EJ dans le forum XMLRAD
    Réponses: 12
    Dernier message: 04/06/2004, 10h58
  5. [MX 2004] Affichage du texte dynamique
    Par caramel dans le forum Flash
    Réponses: 8
    Dernier message: 29/01/2004, 16h07

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