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 :

[asp.net] [C#] Création de champs dynamique -> récupérer valeur ?


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 55
    Par défaut [asp.net] [C#] Création de champs dynamique -> récupérer valeur ?
    Bonjour,

    Sur un formulaire, je génère des champs dynamiquement (en fonction du nombre de résultats ramenés par une requête.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    while (i < monMysql.NbRows)
    {
    	Response.Write("<input type=\"text\" id=\"txt_\"" + i + "\" runat=\"server\" value=\"...\" />");
    	i++;
    }
    Le champ créé aura pour ID ("txt_" + i) :
    txt_0
    txt_1
    txt_2
    ...


    J'aimerai savoir comment récupérer la valeur d'un champ dont l'ID est composé de 2 variables :
    var1 : "txt_"
    var2 : i

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    while (i < nblignes)
    {
           ... =  "txt_" + i + .value; // Problème pour récupérer...
           i++;
    }



    Merci.

  2. #2
    Membre Expert Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Par défaut
    request.form["txt_1"] ou request.querystring["txt_1"]
    request.form["txt_2"] ou request.querystring["txt_2"]
    request.form["txt_3"] ou request.querystring["txt_3"]
    ....

    par exemple ?

  3. #3
    Rédacteur
    Avatar de Paul Musso
    Profil pro
    Inscrit en
    Août 2008
    Messages
    368
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2008
    Messages : 368
    Par défaut
    Bonjour,

    Tu peux utiliser aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Page.FindControl("ID_de_ton_control");
    Par contre, assures toi que ton controle est bien créé avant de le récupérer. Tout contrôle ajouté dynamiquement à ta page n'est plus présent sur un retour "PostBack". Il faut le recréer ...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 55
    Par défaut
    J'ai essayé vos 2 méthodes...
    Mais elles ne me ramène rien...

    Je m'y suis surement mal pris, je vous met le code ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public void CommandBtn_Click(object sender, EventArgs e)
    {
    	int i = 0;
    	message.Text = "";
     
    	while (i < nblignes)
    	{
    		message.Text += "<br> - " + Request.Form["txt_"+i]; // idem avec : Request.QueryString["txt_" + i];
    		i++;
    	}
    }
    et :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public void CommandBtn_Click(object sender, EventArgs e)
    {
    	int i = 0;
    	message.Text = "";
     
    	while (i < nblignes)
    	{
    		message.Text += "<br> - " + Page.FindControl("txt_"+i);
    		i++;
    	}
    }
    Faut-il rajouter quelque chose pour récupérer la valeur (.text, .value, ...) ???

  5. #5
    Rédacteur
    Avatar de Paul Musso
    Profil pro
    Inscrit en
    Août 2008
    Messages
    368
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2008
    Messages : 368
    Par défaut
    Quand tu ajoutes des contrôles dynamiquement, utilise plutôt Page.Controls.Add.
    Voici un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    for (int i = 0; i < 10; i++)
    {
        HtmlGenericControl element = new HtmlGenericControl("div");
        element.InnerText = "Element" + i;
        element.ID = "element" + i;
        Controls.Add(element);
    }

  6. #6
    Rédacteur
    Avatar de Paul Musso
    Profil pro
    Inscrit en
    Août 2008
    Messages
    368
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2008
    Messages : 368
    Par défaut
    De plus, si tu souhaites ajouter dynamiquement des controles de type Input, ajoute les directement à ton formulaire. Sinon leur valeur ne sera pas récupérable au retour de ta page.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 55
    Par défaut
    Le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    for (int i = 0; i < 10; i++)
    {
        HtmlGenericControl element = new HtmlGenericControl("div");
        element.InnerText = "Element" + i;
        element.ID = "element" + i;
        Controls.Add(element);
    }
    m'ajoute du texte (pas des textbox).

    J'ai essayé de récupérer la valeur (code des posts précédents) mais ça ne marche toujours pas.

    Pourrais-tu mettre un exemple qui génère 2-3 textbox + une procédure qui récupère les valeurs de ces textbox STP

Discussions similaires

  1. [ASP.NET MVC] Création des règles de validation
    Par Leelith dans le forum ASP.NET
    Réponses: 8
    Dernier message: 29/09/2009, 18h49
  2. [asp.net.c#] Envoyer une Table dynamique par mail
    Par steuve dans le forum ASP.NET
    Réponses: 2
    Dernier message: 23/04/2009, 13h57
  3. [ASP.NET 2.0] TemplateField ajout dynamique
    Par fix105 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 08/10/2008, 16h55
  4. [C# / ASP.NET] Comment creer une listbox dynamique
    Par arioule dans le forum ASP.NET
    Réponses: 2
    Dernier message: 06/12/2006, 22h03
  5. Création de champ dynamique dans un formulaire
    Par alex75 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/04/2006, 16h00

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