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] Récuperer la valeur d'un DataItem dans un Repeater


Sujet :

ASP.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 27
    Points : 21
    Points
    21
    Par défaut [VB.NET] Récuperer la valeur d'un DataItem dans un Repeater
    Salut à tous.

    Je vous expose mon problème:

    J'utilise un repeater lié à une source de donnée de type Datarow
    A l'intérieur du ItemTemplate de mon repeater, j'affiche dans un tableau les champs de ma requête en utilisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <tr>
    	<td>
    		<%# DataBinder.Eval(Container.dataItem, "Nom_du_champ")%>
    	</td>
    </tr>
    .

    Pour chaque ligne, j'ai également un bouton de type ImageButton, avec un CommandName="maCmde".

    Lorsque je clique sur ce bouton, je me retrouve dans l'évenement ItemCommand de mon repeater. A ce moment, comment puis-je récupérer les valeurs de mes DataItem?

    (Au cours de mes tests, j'ai également essayé d'inclure mon dataItem dans un label, et de récupérer sa valeur de la sorte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim leLbl As Label
            If e.CommandName = "maCmde" Then
                leLbl = Repeater2.Items(e.Item.ItemIndex).FindControl("nom_du_label")
            End If
    label4.text=leLbl.text
    J' arrive bien à récupérer la valeur du texte de mon label si je fais un essai en dur dans le code HTML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <td><asp:Label Runat="server" ID="nom_du_label">toto</asp:Label>
    Mais je ne récupère qu'une chaine vide si je remets mon dataItem.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <td><asp:Label Runat="server" ID="nom_du_label"><%# DataBinder.Eval(Container.dataItem, "Nom_du_champ")%></asp:Label>


    Voilà, j'espère m'être exprimé suffisamment clairement pour que quelqu'un puisse m'aider, je ne suis pas encore très à l'aise avec tous ces concepts.

    Merci d'avance.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 27
    Points : 21
    Points
    21
    Par défaut
    Bon, à force de chercher, j'ai trouvé une solution, certainement pas la meilleure, mais je vous la livre quand même au cas où :

    En fait, j'utilise toujours un label mais avec cette syntaxe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <td><asp:Label Runat="server" ID="nom_du_label" Text='<%# DataBinder.Eval(Container.dataItem, "Nom_du_champ")%>'></asp:Label>
    et la je peux récupérer ma valeur avec ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim leLbl As Label 
            If e.CommandName = "maCmde" Then 
                leLbl = Repeater2.Items(e.Item.ItemIndex).FindControl("nom_du_label") 
            End If 
    label4.text=leLbl.text
    Voilà, si quelqu'un a mieux a me proposer, je suis toujours preneur, en attendant, je vais avancer comme ça.

    J'attends donc encore un peu avant de placer le tag résolu...

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 14
    Points : 17
    Points
    17
    Par défaut
    salut !!
    juste une petite question , il existe un repeater en vb.net ??

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 27
    Points : 21
    Points
    21
    Par défaut
    Oui ça existe!

  5. #5
    Membre averti Avatar de Sacha999
    Inscrit en
    Mars 2007
    Messages
    294
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mars 2007
    Messages : 294
    Points : 350
    Points
    350
    Par défaut
    Comme c'est un controle ASP.NET, il est logique de mettre le texte du Label dans l'attribut "Text" plutot que entre les balises, donc de ce coté là c'est bon.

    Sinon je pense que tu peux simplifier comme ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim leLbl As Label 
    If e.CommandName = "maCmde" Then 
         leLbl = e.Item.FindControl("nom_du_label") 
    End If 
    label4.text=leLbl.text

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

Discussions similaires

  1. Récupérer valeur d'un HSlider dans un Repeater
    Par vpxavier dans le forum Flex
    Réponses: 0
    Dernier message: 29/03/2009, 14h25
  2. [c#]récupérer valeur d'un TextBox dans un Repeater
    Par Filippo dans le forum ASP.NET
    Réponses: 1
    Dernier message: 20/03/2007, 10h48
  3. [VB.Net]Procédure Stocké retournant une valeur
    Par waldo2188 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 03/05/2005, 12h56
  4. [VB.NET] [XML] Modification d'une valeur
    Par kirk80 dans le forum Windows Forms
    Réponses: 9
    Dernier message: 09/09/2004, 16h15
  5. [VB.NET] copier coller d'une valeur
    Par mic56 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 08/06/2004, 11h43

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