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 la valeur d une zone de texte


Sujet :

ASP.NET

  1. #1
    Membre éclairé
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 346
    Par défaut Rècupèrer la valeur d une zone de texte
    Bonsoir, tout le monde
    Je travaille au niveau d’écriture à un fichier XML tel que je veux stocker le contenu de mes TextBox.Text à mes balises voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
                XmlTextWriter.WriteStartElement("balise1");
     
    XmlTextWriter.WriteElementString("t1 ,TextBox1.Text);
    XmlTextWriter.WriteElementString("t2", TextBox2.Text);
    XmlTextWriter.WriteElementString("t3, TextBox3.Text);
    XmlTextWriter.WriteElementString("t4, TextBox4.Text);
    XmlTextWriter.WriteElementString("t5, TextBox5.Text);
    …..
    Mais je veux faire cette solution , tel que je ne connais pas le nombre de TextBox.Text que je dois stocker


    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
    On a dèja au debut int k=0 ;
    String Balise ;
    String textText ;
     
    Balise = "t" + k;
    textText = "TextBox"+k+".Text";
     
    while(nbreElement!=0)
    {
    Balise = "t" + k;
    textText = "TextBox"+k+".Text";
     
    XmlTextWriter.WriteElementString(Balise, textText);
    ………….
     
    }
    Pour ce cas les balises fonctionne bien c a d je trouve t1 , t2 , t3… au niveau de mon fichier XML mais textText no ; car je trouve comme ça
    <t1>TextBox1.Text</t1>
    <t2> TextBox1.Text</t2>


    Pas le contenu de textBox1
    Est-ce que je dois ajouter qlq chose ou bien ma logique ne peut pas fonctionner ??
    Merci d avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour sonia

    Une solution pourrais être de regrouper tout tes textbox dans un panel comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <asp:Panel ID="Panel1" runat="server">
       <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
       <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>     
       <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
    </asp:Panel>
    ensuite dans ton code tu peux lister tous les controls

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    K = 0;
    foreach (var item in Panel1.Controls)
    {
        if (item.GetType() == typeof(TextBox))
        {
     
            Balise = "t" + k;
            XmlTextWriter.WriteElementString(Balise,((TextBox)item).Text );
            K++;
        }
    }
    Dis moi si ca fonctionne

    arnauld

  3. #3
    Membre éclairé
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 346
    Par défaut
    Merci pour votre réponse
    Mais dans votre cas on a le nombre de textBox est constant alors on doit générer 3 balises au niveau de fichier XML t0,t1 et t2 malgré qd on a pas remplit les 3 zones de texte quant à moi je ne sais pas de départ combien je dois récupérer de text de zone de text !!!
    Est ce que je dois travailler par un panel dynamique , est ce que ça c est possible???

  4. #4
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par sonia5 Voir le message
    Mais dans votre cas on a le nombre de textBox est constant
    non

  5. #5
    Membre éclairé
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 346
    Par défaut
    Je veux dire avec le nombre de textBox est constant au niveau de déclaration de panel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <asp:Panel ID="Panel1" runat="server">
       <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
       <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>     
       <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
    </asp:Panel>
    Pas au niveau de lecture
    Ce que je veux savoir est ce que c est possible au niveau de déclaration c a d au niveau de création je peux gèrer panel dynamique ??

  6. #6
    Invité
    Invité(e)
    Par défaut
    Tu peux mettre autant de textbox que tu veux dans un panel, il s'agrandira tout seul

  7. #7
    Membre éclairé
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 346
    Par défaut
    Je sais , mais au niveau de boucle ds votre cas , elle va boucler 3 fois alors elle va créer 3 balises : t0 , t1 et t2 et si par exemple on ne va pas saisir le texte de TextBox3 on doit avoir une balise t2 vide , je vous dit ça car j ai déjà testé la solution que vous m'a proposé , c est une bonne solution mais à mon avis au niveau de déclaration on doit générer un panel dynamique car on sait pas le nombre des balises au début: c est pour cela je veux à chaque fois ajouter un textBoxi au panel est ce que ça c est logique ???
    c est à dire faire comme ça:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            TextBox t= new TextBox();
            t.TextMode.MultiLine();
     
            Panel1.Controls.Add(t);
    Mais mon probleme c est que t.TextMode.MultiLine(); ne fonctionne pas chez moi

    Merci à ts

  8. #8
    Invité
    Invité(e)
    Par défaut
    pourquoi ne pas simplement tester si le texbox n'est pas vide ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    foreach (var item in Panel1.Controls)
    {
        if (item.GetType() == typeof(TextBox) && ((TextBox)item).Text != string.empty)
        {
     
            Balise = "t" + k;
            XmlTextWriter.WriteElementString(Balise,((TextBox)item).Text );
            K++;
        }
    }

  9. #9
    Membre éclairé
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 346
    Par défaut
    D'accord, merci
    Par exemple dans mon cas j ai besoin de 30 TextBox au maximun et 1 TextBox au minimun, alors selon vous je dois faire comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <asp:Panel ID="Panel1" runat="server">
       <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
       <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>    
    .......... 
       <asp:TextBox ID="TextBox30" runat="server"></asp:TextBox>
    </asp:Panel>
    Pour moi ça prend bcp d espace et aussi moi je vais jouer sur la visibilité de ce TextBox à chaque fois qd j'ai besoin d'un parmi ce 30 je dois le mettre visible
    Mais moi je souhaite à chaque fois quand j'ai besoin d'un TextBox je dois le créer et l ajouter a Panel1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            TextBox ti= new TextBox();
            ti.TextMode.MultiLine();      
            Panel1.Controls.Add(ti);
    Mais je pense que ce logique est bon mais c est difficile à le faire , car j'ai des problèmes quand j'ajoute t2 (2ème éléments au panel )et aussi au niveau de cet écriture : ti.TextMode.MultiLine();

    Merci à ts vos aides

  10. #10
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Sans regrouper les TextBox dans un Panel (ce qui risque de chambouler ton affichage), je ferais de cette façon :

    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
     
    int eltNb = 0;
    while(true)
    {
    eltNb++;
    Balise = string.Format("t{0}", eltNb.ToString());
    textText = string.Format("TextBox{0}", eltNb.ToString());
     
    TextBox t = Page.FindControl(textText) as TextBox;
     
    if (t != null)
    {
    XmlTextWriter.WriteElementString(Balise, t.Text);
    }
    els
    {
    break;
    } 
    }
    1

Discussions similaires

  1. [AC-2007] Récupérer la valeur d'une zone de texte
    Par titi1131 dans le forum VBA Access
    Réponses: 5
    Dernier message: 25/04/2012, 16h24
  2. Réponses: 1
    Dernier message: 05/03/2010, 11h15
  3. récupérer des valeurs d'une zone de texte
    Par joe370 dans le forum VBA Word
    Réponses: 6
    Dernier message: 03/10/2009, 10h30
  4. [E-03] Récupérer la valeur d'une zone de texte dans une feuille
    Par moilou2 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 25/03/2009, 10h57
  5. comment récupérer la valeur d'une zone texte ?
    Par jessy212 dans le forum Access
    Réponses: 2
    Dernier message: 24/08/2006, 14h59

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