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 :

Probleme recuperation input text


Sujet :

ASP.NET

  1. #1
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 96
    Points : 72
    Points
    72
    Par défaut Probleme recuperation input text
    Bonjour a tous et a toutes

    je crée des input text avevec une boucle for
    <input id=\"Langue" + i.ToString() + "\" type=\"text\" value=\"" +nomCat + "\" />";
    et dans un bouton coté serveur je voudrai récupérer les valeur de chaque bouton (le texte)
    Sa parai c** comme truc mais je ne c'est pas comment y arriver.

    Merci de votre aide

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

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Tu dois mettre un runat="server" pour y avoir accès côté serveur

  3. #3
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 96
    Points : 72
    Points
    72
    Par défaut
    Je teste et je te dit merci

  4. #4
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 96
    Points : 72
    Points
    72
    Par défaut
    Sa passe pas??
    Je ne comprend pas.

    Création de mes inputs
    for (int i = 0; i < Nb_langue; i++)
    {

    Dr = Ds.Tables["Langue_Traduction"].Rows[i];
    string nomCat = Dr["Traduction"].ToString();
    lbl_Categorie.Text += "<input id=\"Langue" + i.ToString() + "\" runat=\"server\" type=\"text\" value=\"" +
    nomCat + "\" />";
    I_total++;
    }
    J'ai rajouter runat=server et comment je recuperer.

    Je suis dans une balise
    <form id="test" action="Main.aspx">
    <% if ((Request.Params["id_cat"] != null && Request.Params["id_cat"] != "") &&
    (Request.Params["id_core"] != null && Request.Params["id_core"] != ""))
    { %>
    <asp:Button ID="Send" runat="server" Text="Enregistrer / Save"
    onclick="Send_Click" />
    <% } %>
    </form>
    Je j'affiche le bouton si mon url contien bien mes information nessesaire.

    y a t'il un moyen de palier à sa en code behind?

  5. #5
    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 : 43
    Localisation : Belgique

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

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Points : 3 543
    Points
    3 543
    Par défaut
    Le plus simple est de créer tes contrôle en utilisant des contrôles serveur et en les ajoutant à la collection Controls de ton conteneur.

    Je ferais plutôt un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for....
     
    TextBox _tb = new TextBox();
    _tb.ClientID = "Langue" + i.toString();
    _tb.Text = nomCat;
    MonConteneur.Controls.Add(_tb);
    Attention que ces contrôles doivent être reconstruits à chaque chargement de page.
    Si ton problème a une solution, rien ne sert de t'inquiéter..
    Si il n'en a pas, t'inquiéter ne sert à rien


  6. #6
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 96
    Points : 72
    Points
    72
    Par défaut
    C'est quoi MonConteneur?

    Avant j'avais sa :
    lbl_Categorie.Text += "<input id=\"Langue"
    qui étais dans un tableau.

    Maintenant

    MonConteneur c'est pas sa lbl_Categorie.Text si??

    Et il me dit que :
    _tb.ClientID est en lecture seul.

  7. #7
    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 : 43
    Localisation : Belgique

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

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Points : 3 543
    Points
    3 543
    Par défaut
    Oui, je me suis trompé, ce n'est pas ClientID, mais simplement ID.

    Pour MonConteneur, tu dois remplacer cela par l'ID du contrôle Conteneur (qui peut être la page, un panel, etc...)
    Si ton problème a une solution, rien ne sert de t'inquiéter..
    Si il n'en a pas, t'inquiéter ne sert à rien


  8. #8
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 96
    Points : 72
    Points
    72
    Par défaut
    Re
    Merci de ta solution : (le code c'etais)
    TextBox tb = new TextBox();
    tb.ID = "Langue" + i.ToString();
    tb.Text = nomCat;
    this.Controls.Add(tb);
    Rien à faire il me demande un form runat="server" alors qu'il y est deja??
    Je ne comprend pas dutout.
    Une Idée?

  9. #9
    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 : 43
    Localisation : Belgique

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

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Points : 3 543
    Points
    3 543
    Par défaut
    Dans le code que tu montrais plus haut, il n'y avait pas l'attribut runat="server" dans la déclaration de ton form.

    Peux-tu poster la partie du code où tu génères les textbox ?
    Si ton problème a une solution, rien ne sert de t'inquiéter..
    Si il n'en a pas, t'inquiéter ne sert à rien


  10. #10
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 96
    Points : 72
    Points
    72
    Par défaut
    Mon code behind :
    for (int i = 0; i < Nb_langue; i++)
    {
    lbl_Categorie.Text += "<tr>\n";
    lbl_Categorie.Text += "<td>\n";
    Dr = Ds.Tables["Langue_Traduction"].Rows[i];
    string nomCat = Dr["Traduction"].ToString();


    lbl_Categorie.Text += nomCat + " : ";
    lbl_Categorie.Text += "</td>\n";

    lbl_Categorie.Text += "<td>\n";

    TextBox tb = new TextBox();
    tb.ID = "Langue" + i.ToString();
    tb.Text = nomCat;
    this.Controls.Add(tb);

    lbl_Categorie.Text += "</td>\n";
    lbl_Categorie.Text += "</tr>\n";
    I_total++;
    }
    Ma page aspx :
    <form id="form1" runat="server" action="Main.aspx">
    <div>
    <asp:Label ID="lbl_Categorie" runat="server" Text=""></asp:Label>
    <% if ((Request.Params["id_cat"] != null && Request.Params["id_cat"] != "") &&
    (Request.Params["id_core"] != null && Request.Params["id_core"] != ""))
    { %>
    <asp:Button ID="Send" runat="server" Text="Enregistrer / Save"
    onclick="Send_Click" />
    <% } %>
    </div>
    </form>

  11. #11
    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 : 43
    Localisation : Belgique

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

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Points : 3 543
    Points
    3 543
    Par défaut
    Tu devrais de nouveau plutôt te servir des contrôles serveur.

    Exemple :

    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
     
     
    Table _myTable = new Table();
            for(int i = 0; i < Nb_Langue; i++)
            {
                TableRow _row = new TableRow();
                TableCell _cell = new TableCell();
     
                TextBox tb = new TextBox();
                tb.ID = "Langue" + i.ToString();
                tb.Text = nomCat;
     
                _cell.Controls.Add(tb);
                _row.Cells.Add(_cell);
                _myTable.Rows.Add(_row);
            }
     
    this.Controls.Add(_myTable);
    Si ton problème a une solution, rien ne sert de t'inquiéter..
    Si il n'en a pas, t'inquiéter ne sert à rien


  12. #12
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 96
    Points : 72
    Points
    72
    Par défaut
    Toujours ce message d'erreur a la noix
    Une page ne peut comporter qu'une seule balise Form côté serveur.
    Alors que j'en ai un seul sur ma page aspx (et un dans ma master page)

    Comment je recuperer apres les controle un par un dans ma fonction on click de mon bouton?

  13. #13
    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 : 43
    Localisation : Belgique

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

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Points : 3 543
    Points
    3 543
    Par défaut
    Je te conseille de relire de la doc sur la master page car tu ne peux pas avoir un form dans une master page et dans une page de contenu.

    Pour ce qui est de récupérer tes contrôles deux possibilités :

    1) tu te sers de la méthode FindControl()
    2) tu conserve lorsque tu les recrées les références vers tes différents contrôles.
    Si ton problème a une solution, rien ne sert de t'inquiéter..
    Si il n'en a pas, t'inquiéter ne sert à rien


  14. #14
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 96
    Points : 72
    Points
    72
    Par défaut
    Salut,J'ai réussi à résoudre mon problème de runat="server" et mon bouton Envoyer fonctionne.
    Une question Comment je recupere un objet avec findcontrol?
    J'ai fais sa:
    var tb = FindControl("Langue0");
    ou
    TextBox tb = (TextBox)FindControl("Langue0");
    String u = tb.Text
    Mais a chaque fois "tb" est égal à "null" Une idée?

    Sinon tes trucs mon bien aidé

  15. #15
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 96
    Points : 72
    Points
    72
    Par défaut
    C'est bon j'ai trouver :p
    C'est fini le calvaire et moi je suis heureux
    J'ai fini par faire comme sa :

    Page aspx :
    <form id="Main" method="post" runat="server" action="Renommer.aspx">
    <div>
    <asp:Label ID="lbl_Categorie" runat="server" Text=""></asp:Label>
    <% if ((Request.Params["id_cat"] != null && Request.Params["id_cat"] != "") &&
    (Request.Params["id_core"] != null && Request.Params["id_core"] != ""))
    { %>

    <asp:Button ID="Send" runat="server" Text="Enregistrer / Save"
    onclick="Send_Click" />
    <% } %>
    </div>

    </form>
    Mon code behind :

    lbl_Categorie.Text = "<form id=\"form1\" runat=\"server\">";
    lbl_Categorie.Text += "<table>\n";


    for (int i = 0; i < Nb_langue; i++)
    {
    lbl_Categorie.Text += "<tr>\n";
    lbl_Categorie.Text += "<td>\n";
    Dr = Ds.Tables["Langue_Traduction"].Rows[i];
    string nomCat = Dr["Traduction"].ToString();


    lbl_Categorie.Text += nomCat + " : ";
    lbl_Categorie.Text += "</td>\n";

    lbl_Categorie.Text += "<td>\n";

    //TextBox tb = new TextBox();
    //tb.ID = "Langue" + i.ToString();
    //tb.Text = nomCat;
    //Panel1.Controls.Add(tb);


    lbl_Categorie.Text += "<input id=\"Langue" + i.ToString() + "\" name=\"Langue" + i.ToString() + "\" runat=\"server\" type=\"text\" value=\"" +
    nomCat + "\" />";
    lbl_Categorie.Text += "</td>\n";
    lbl_Categorie.Text += "</tr>\n";
    I_total++;
    }
    lbl_Categorie.Text += "</table>\n";
    Et ma fonction Onclick (Dans un for)
    string to = Request.Form["Langue0"];
    Merci à tous

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

Discussions similaires

  1. Probleme : input text de 1 caractere
    Par Vinc35 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 17/10/2006, 15h17
  2. Petit probleme avec <input type="text" .
    Par cyberdevelopment dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 18/08/2006, 20h17
  3. Probleme d'espace dans un INPUT TEXT (php/mysql)
    Par Joe Le Mort dans le forum SQL Procédural
    Réponses: 9
    Dernier message: 10/08/2006, 09h30
  4. problemes input texte
    Par Shadow69 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 15/02/2006, 03h56
  5. Comment recuperer la liste des input text d'un formulaire.
    Par luimême dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 16/01/2006, 14h34

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