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 :

[2.0] Comment récupérer un SelectedRow à partir d'un GridView ?


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 123
    Par défaut [2.0] Comment récupérer un SelectedRow à partir d'un GridView ?
    Salut à tous,
    j'ai un pb avec l'utilisation d'un gridView.
    j'aimerais recuperer un SelectedRow pour afficher plus de détail a propos de ce tuple... Le pb c'est que je n'arrives pas à récupérer les informations du selectedRow... Comment ca marche?

  2. #2
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Par défaut
    il faut que tu mettes une valeur ou plusieurs pour la propriété datakeynames de ton gridview et que tu implémentes l'évenement selectedIndexChanged.

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 55
    Par défaut
    Bonjour,

    Tu peux mettre dans ton GridView un LinkButton (ou autre soit ImageButton, Button, etc.) dans un TemplateField à l'intérieur de ton GridView.

    Un peu comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <asp:GridView ID="GridView" runat="server" DataKeyNames="Numero" GridLines="None">
    <Columns>
    <asp:BoundFieldDataField="Numero"HeaderText="Numero"ReadOnly="True"SortExpression="Numero""/>
    
    <asp:TemplateField>
        <ItemTemplate>
         <asp:ImageButtonID="lbDetails"CommandName="Details"runat="server"CausesValidation="false"
             CssClass="BoutonImage"ImageUrl="Images/details.gif"/>
         </ItemTemplate>
        </asp:TemplateField>
    </Columns>
    </asp:GridView>
    
    Bien sûr, il faut avoir mis le DataKeyName pour permettre au SelectedValue d'avoir la valeur du Numéro unique qui identifie ton tuple.

    Ensuite, tu peux passer par l'événement RowCommand du GridView qui est utilisé lorsqu'une commande a été fait dans le GridView (ceci peut être soit Insert, Update, Delete avec les boutons générées automatiquement, ou une commande que vous décidez vous-mêmes)

    Comme dans l'exemple ci-dessus, j'ai mis un CommandName (Details) à mon ImageButton pour me permettre d'avoir une commande personnalisée dans mon GridView.

    Ensuite, il n'y a qu'à déterminer la commande qui a été faite en faisant appel à l'objet e qui possède la propriété CommandName et qui vous retournera la valeur de la commande qui a été faite.

    Ex.:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ProtectedSub GridView_RowCommand(ByVal sender AsObject, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles gvClasses.RowCommand
    If e.CommandName = "Details"
    GridView.SelectedIndex = CType(CType(e.CommandSource, Control).Parent.Parent, GridViewRow).RowIndex
    End if
    End Sub
    
    De plus, pour obtenir la ligne qui a été sélectionnée, on fait appel à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CType(CType(e.CommandSource, Control).Parent.Parent, GridViewRow).RowIndex
    Qui permet d'obtenir la ligne dans laquelle le contrôle a été cliqué (CType(e.CommandSource, Control)), ensuite on obtient la cellule (le premier .Parent) et ensuite la ligne (le second .Parent).

    À la prochaine,

    Évans

  4. #4
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 123
    Par défaut
    Oki merci a tout les deux. Je regarde ca mais peut etre que j'aurais des questions plus tard...

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 123
    Par défaut
    c'est bon j'ai réussi à récupérer ce que je voulais. J'ai rempli mon dataKyeName pour mon gridView et j'utilise ensuite la procedure SlectedIndexChanged.... Et la je récupére la valeur GridView.SelectedValue.ToString qui me redonne la valeur selectionnée de ce champ dans ma table....

    Merci encore a plus tard...

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/06/2006, 16h19
  2. Réponses: 2
    Dernier message: 17/05/2006, 21h35
  3. Réponses: 2
    Dernier message: 05/10/2004, 22h43

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