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 :

Recuperer valeur textbox dans DataList [Débutant]


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 79
    Par défaut Recuperer valeur textbox dans DataList
    Bonjour,

    Je développe actuellement un site marchand. Dans une datalist, j'affiche un produit et j'ai mis une textbox pour proposer la quantité. Cependant, je n'arrive pas a récupérer dans mon code la valeur de la textbox. j'ai essayé avec un findcontrol mais je pense être a coté de la plaque.

    Pouvez vous m'éclairer ?

    Cordialement

  2. #2
    Membre éclairé Avatar de DeWaRs
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2006
    Messages
    291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 291
    Par défaut
    Bonjour,

    Logiquement, avec Findcontrol cela devrait marché.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim tb as textbox = tondatalist.findcontrol("lenomdetaTb")
     
    if tb is not nothing then
    msgbox(tb.text)
    end if
    Cordialement.

    DeWaRs

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 79
    Par défaut
    Bonjour,

    Merci pour ta réponse, cependant, j'ai déjà essayé cette méthode et à chaque fois ma textbox est à "Nothing" alors que j'ai écrit du texte dedans...

    je suis dans l'incompréhension la plus totale...

  4. #4
    Membre éclairé Avatar de DeWaRs
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2006
    Messages
    291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 291
    Par défaut
    Bonjour,

    Peux tu poster le code de ton dataliste ?

    Cordialement.

    DeWaRs

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 79
    Par défaut
    Bonjour,

    Voici le code de ma Datalist :

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    <asp:DataList ID="DataList1" runat="server" DataKeyField="idArticle" 
                    DataSourceID="SqlDataSource1" style="margin-left: 0px" BackColor="#3366FF">
                    <ItemTemplate>
                    <center>
                        <asp:Label ID="LibelleArticleLabel" runat="server" 
                            Text='<%# Eval("LibelleArticle") %>' BorderStyle="None" Font-Bold="True" 
                            Font-Size="Large" ForeColor="Yellow" />
                            <br />
                            </center>
                        idArticle:
                        <asp:Label ID="idArticleLabel" runat="server" Text='<%# Eval("idArticle") %>' />
                        <br />
                        <asp:Image ID="Image1" runat="server" Height="296px" ImageAlign="Left" 
                            ImageUrl='<%# Eval("ImageArticle") %>' style="margin-left: 0px" Width="281px" />
                        <br />
                        <asp:Label ID="InfosArticleLabel" runat="server" 
                            Text='<%# Eval("InfosArticle") %>' Font-Names="High Tower Text" 
                            Font-Size="Medium" />
                        <br />
                        <br />
                        <br />
                        <br />
                        <br />
                        <br />
                        <br />
                        <br />
                        <br />
                        <br />
                        <br />
                        <br />
                        <br />
                        <br />
                        <br />
                        <br />
                        PrixArticle:
                        <asp:Label ID="PrixArticleLabel" runat="server" 
                            Text='<%# Eval("PrixArticle") %>' />
                        <br />
                        <br />
                        Quantité :
                        <asp:TextBox ID="txtQte" runat="server" Height="23px" Width="28px"></asp:TextBox>
                        <br />
                        <br />
                        <asp:Button ID="btnAjouterPanier" runat="server" CssClass="BoutonFicheProduit" 
                            onclick="btnAjouterPanier_Click" Text="Ajouter au panier" />
                        <br />
                        <br />
                    </ItemTemplate>
                </asp:DataList>
    Cordialement

  6. #6
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Bonjour,

    Regarde dans le code source de ta page (dans ton navigateur). Regarde si l'ID généré pour le control que tu veux récupérer correspond exactement à ce que tu passes en paramètre de la méthode FindControl().

    Si cela ne correspond pas, tu as 2 solutions :
    - Soit tu rajoutes le/les préfixes générés lors du rendu HTML dans le paramètre que tu passes à FindControl();
    - Soit tu gères la manière dont les ID sont gérés lors du rendu HTML, via la propriété ClientIDMode.

    Plus d'infos sur la documentation MSDN, et sur ce blog.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  7. #7
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 79
    Par défaut
    Bonjour,

    Tout d'abord désolé pour cette réponse tardive, et merci pour votre réponse. Les liens sont très interessants, cependant, je n'arrive toujours pas à obtenir ce que je souhaite. J'ai decidé de passer par un idClientMode="Static".

    Cependant dans ma page HTML générée l'id de mon controle reste toujours celui ci: DataList1_ctl00_txtQte

    Et j'ai essayé dans mon FindControl de mettre l'ID généré dans le code source cependant, il détecte toujours que mon contrôle est vide...

    Auriez vous une idée ?

    Cordialement

  8. #8
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Salut,

    On peut avoir le code de la méthode btnAjouterPanier_Click? Si tu mets un point d'arrêt dans cette méthode est-ce que tu t'y arrêtes bien après avoir cliqué sur le bouton?

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  9. #9
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 79
    Par défaut
    Bonjour,

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     Protected Sub btnAjouterPanier_Click(ByVal sender As Object, ByVal e As System.EventArgs)
     
     
            Dim SourceTextBox As TextBox
            SourceTextBox = CType(DataList1.FindControl("DataList1_ctl00_txtQte"),  _
                TextBox)
            If Not SourceTextBox Is Nothing Then
                MsgBox(SourceTextBox.Text)
            End If
    J'ai essayé avec un point d’arrêt et tout s’exécute parfaitement, sauf qu'il détecte qu'il n'y a rien dans ma textbox...

    Cordialement

  10. #10
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Normal vu que ton controle s'appelle "txtQte". Ensuite met un point d'arrêt sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim SourceTextBox As TextBox
    et regarde un peu (beaucoup même) ce qu'il y a dans l'objet "sender" et "e".
    "Winter is coming" (ma nouvelle page d'accueil)

  11. #11
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 79
    Par défaut
    Merci pour ta réponse rapide.

    Alors dans mon sender j'ai "System.Web.UI.WebControls.Button" et dans e j'ai "System.EventArgs"

  12. #12
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    C'est tout?

    Il devrait y avoir parmi les propriétés une propriété qui te permettra de retrouver ta textbox.

    Cherche un peu plus
    "Winter is coming" (ma nouvelle page d'accueil)

  13. #13
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 79
    Par défaut
    Salut,

    en effet j'obtiens toutes les propriétés du sender ! Cependant, tout porte sur le Bouton, j'ai tout déroulé mais il n'y a aucune propriété qui porte sur ma textbox...

  14. #14
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Essaye avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    protected void Button1_Click(object sender, EventArgs e)
    {
        TextBox txt = (sender as Button).Parent.FindControl("txtQte") as TextBox;
    }
    Faut transcoder
    "Winter is coming" (ma nouvelle page d'accueil)

  15. #15
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 79
    Par défaut
    Mille mercis !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Dim txt As TextBox = sender.Parent.FindControl("txtQte")
    Ainsi avec txt.text j'obtiens ma quantité entrée dans la Textbox !

    Je ne sais pas comment te remercier ! cela faisait plusieurs mois que j'essayer de résoudre ce problème et enfin je vais pouvoir reprendre mon projet !

    Cependant, je ne suis pas sur d'avoir bien compris. voici ce que je pense avoir compris :

    On utiliser sender car c'est l'événement du clic sur le bouton. Vu que ce bouton est dans ma DataList, les propriété "Parent" du bouton vont pouvoir acceder à mon controle "txtQte" ?

    C'est bien ça ou je suis completement à coté de la plaque ? Car ça fonctionne, ça c'est une chose mais l'essentiel est que je comprenne

    Encore merci !

  16. #16
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Citation Envoyé par Romain0 Voir le message
    On utiliser sender car c'est l'événement du clic
    Non l'évènement c'est le click. "sender" est le contrôle qui déclenche l'évènement.
    Citation Envoyé par Romain0 Voir le message
    Vu que ce bouton est dans ma DataList
    Non plus ton contrôle est dans un DataListItem qui lui-même est dans le contrôle DataList.
    la propriété "Parent" du bouton va pouvoir acceder à mon controle "txtQte"
    Oui, via le DataListItem qui est son parent. C'est aussi pour cela que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataList1.FindControl("txtQte")
    ne renvoyait rien. La datalist ne voit pas les contrôles qui sont dans les DataListItem car ils y sont encapsulés (invisibles).

    Il est parfois nécessaire de rechercher tous les boutons ou toutes les cases à cocher d'une DataList ou d'une GridView. Il faut pour cela utiliser une fonction récursive.
    "Winter is coming" (ma nouvelle page d'accueil)

  17. #17
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 79
    Par défaut
    Merci pour ces explications !

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/01/2015, 11h57
  2. [VBA-E] Recuperation valeur Textbox en entier
    Par D@rkneo dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/05/2007, 13h56
  3. [XSLT]Recuperer valeur concatenee dans une balise
    Par e_peigne dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 25/10/2006, 13h49
  4. [VB6 ArcView9] Recuperer valeur RMS dans une variable
    Par TiT0f dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 23/05/2006, 15h49
  5. recuperer valeur liste dans champs texte
    Par fredaphp dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/05/2006, 19h17

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