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 l'objet selectionné dans gridView


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 190
    Par défaut Récupérer l'objet selectionné dans gridView
    Bonjour,

    J'ai un gridView gV que j'alimente ainsi (.aspx.cs) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    gV.DataSource = lO;      
    gV.DataBind();
    gV.SelectedIndex = -1;
    avec lO ma liste non nulle d'objets de la classe "maClasse" (cela fonctionne)
    Cette classe a notramment un attribut monLibelle que j'utilise dans le gridView...

    Dans le .aspx, j'ai ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <GridView ID="gV" AllowPaging="True" runat="server"
    Width="70%" AutoGenerateColumns="False" CssClass="monCSS" 
    PageSize="10" OnSelectedIndexChanged="gV_SelectedIndexChanged"
    DataKeyNames="monLibelle">
    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <Columns>
    <asp:CommandField SelectText="Sel" ShowSelectButton="True"></asp:CommandField>
    <asp:BoundField DataField="monLibelle" HeaderText="Libellé" SortExpression="monLibelle" visible="false" />
    <asp:TemplateField HeaderText="Nom de mon objet">
    <itemtemplate>
    <asp:Label Text='<%# Eval("monLibelle") %>' Runat="Server"/>
    </itemtemplate>
    </asp:TemplateField>
    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    </Columns>
    </GridView>

    L'utilisateur séléctionne une ligne du tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    monObjet = (maClasse)gV.SelectedRow.DataItem;
    Au final cela ne donne rien car le SelectedRow.DataItem est à null

    Avez vous une idée?

    Merci beaucoup...

    T.

  2. #2
    Membre confirmé Avatar de DoRiane
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 127
    Par défaut
    Bonjour,
    sans garantie, tu peux essayer ceci ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    GridViewRow row = gV.SelectedRow;
    maClasse insMaClasse = new maClasse(row.Cells[1].Text);
    bon courage.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 190
    Par défaut
    Merci mais...je te confirme que ça ne marche pas...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 16
    Par défaut
    essaie ça...

    protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
    string operation = e.CommandName.ToString();

    if (operation == "Select")
    {
    string page;
    //Fonction qui return le numero de la ligne à laquel le boutton à été appuier
    int N = Convert.ToInt32(e.CommandArgument);
    //DataKeys[N] la valeur de la clé de la gridview ligne N
    string usern = GridView1.DataKeys[N].Value.ToString();
    page = "~/Details.aspx?use=" + usern;
    Response.Redirect(page);
    }
    }
    // pour faire ça tu doit avoir la propriété DataKeyNames dans ton gridview
    // et le boutton qui sélectionne ta ligne doit avoir CommandName="Select"
    :d

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 190
    Par défaut
    Humm...
    Merci mais toujours pas convaincant...

    Existe-t-il un moyen "propre" de récupérer l'objet correspondant à la ligne selectionnée?
    Le GridView lié à une DataSource (ici une liste d'objets) le permet-il?

    Merci encore pour votre aide...

    T.

  6. #6
    Membre confirmé Avatar de DoRiane
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 127
    Par défaut
    Merci mais...je te confirme que ça ne marche pas...
    il y a quelques modifications à apporter mais c'est LA solution propre ...

    Voici un code qui marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <asp:GridView ID="gvSynthese" runat="server" ...
    OnSelectedIndexChanged="gvSynthese_SelectedIndexChanged" >
          <SelectedRowStyle CssClass="gvligneselectionnee"/>
          <Columns>
                 <asp:CommandField SelectText="communaute" ShowSelectButton="True"></asp:CommandField>
                 <asp:BoundField DataField="communaute" HeaderText="C/F" ReadOnly="true" ></asp:BoundField>
    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    protected void gvSynthese_SelectedIndexChanged(object sender, EventArgs e)
        {
            GridViewRow row = gvSynthese.SelectedRow;
            Response.Write("row.Cells[2] : " + row.Cells[2].Text);
           }

Discussions similaires

  1. Réponses: 7
    Dernier message: 07/01/2008, 17h50
  2. Comment récupérer la ligne selectionné dans un JTree ?
    Par Spinoza23 dans le forum Composants
    Réponses: 6
    Dernier message: 18/01/2007, 14h47
  3. Réponses: 2
    Dernier message: 29/12/2006, 15h56
  4. Réponses: 4
    Dernier message: 01/10/2006, 15h37
  5. Réponses: 1
    Dernier message: 28/07/2006, 09h17

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