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ération lignes cochées dans un gridview


Sujet :

ASP.NET

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    526
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 526
    Par défaut Récupération lignes cochées dans un gridview
    Bonjour,

    J'ai un gridview avec plusieurs colonnes dont la première contient des checkbox:

    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
    <asp:GridView ID="GridViewSecteur" runat="server" OnRowDataBound="GridView2_RowDataBound" AllowPaging="False" 
               AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="Code" 
               DataSourceID="SqlDataSourceSecteur" BorderColor="#94979A" CellPadding="10" BackColor="#ECEBEF"  HeaderStyle-BackColor="#6A97D0" AlternatingRowStyle-BackColor="#D2DBE6" HeaderStyle-ForeColor="White">
               <Columns>
     
                   <asp:TemplateField ShowHeader="False" >
                    <ItemTemplate>
                        <asp:CheckBox ID="chkBox" runat="server" />
                    </ItemTemplate>
                    <HeaderTemplate>
                        <asp:CheckBox ID="cbSelectAll2" runat="server" Text="" />
                    </HeaderTemplate>
        </asp:TemplateField>
     
                   <asp:BoundField DataField="Code" HeaderText="Code" 
                       SortExpression="Code" />
                   <asp:BoundField DataField="Libellé" HeaderText="Libellé" 
                       SortExpression="Libellé" />
               </Columns>
           </asp:GridView>
    Je voudrais savoir comment en C# récupérer les valeurs de la colonne "Code" pour les lignes dont la checkbox est cochée ?

    Merci.

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

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Problème traité à maintes reprises
    Merci de faire une recherche

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    526
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 526
    Par défaut
    J'ai essayé de faire cela pour tester de récupérer une valeur, mais je ne sais pas quoi mettre pour récupérer la valeur sous forme de type "int" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    for (int i=0;i<=GridViewSite.Rows.Count;i++)
             {
     
                    GridViewRow row = GridViewSite.Rows[i];
                    bool isChecked = ((CheckBox)row.FindControl("chkBox")).Checked;
                    if (isChecked)
                    {
                        CodeSite = Int32.Parse(((?)row.FindControl("Code")).Value);
                    }
             }
    Si quelqu'un pourrait m'aider, merci.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 251
    Par défaut
    Il y a une ligne de ton code que je ne comprends pas trop.

    Ton ne serait-il pas indiqué dans une cellule du tableau?
    Si c'est le cas, je ne vois pas pourquoi celle-ci ne fonctionnerais pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CodeSite = Int32.Parse(GridView1.Rows[i].Cells[0].Text)
    (ici, le code est dans la première cellule de la ligne)

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    526
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 526
    Par défaut
    Non en mettant ça, j'obtiens le message
    Le format de la chaîne d'entrée est incorrect
    T'aurait une autre proposition?
    Merci.

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

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par stefsas Voir le message
    Non en mettant ça, j'obtiens le message


    T'aurait une autre proposition?
    Merci.
    Parce qu'il faut pas la lire la Cells[0]

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 251
    Par défaut
    Je reprends le code d'un ancien projet... au début d'une fonction je récupère des numéros qui se trouve dans la deuxième colonne et les place dans une liste (les cases à cocher sont dans la première colonne) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
            ArrayList liste_convoc = new ArrayList();
            CheckBox cb = new CheckBox();
            int i = 0;
     
            foreach (GridViewRow gvr in GRV_convoc.Rows)
            {
                cb = (CheckBox)(gvr.FindControl("RowNumCheckBox"));
                if (cb.Checked)
                    liste_convoc.Add(GRV_convoc.Rows[i].Cells[1].Text);
                i++;
            }
    Plus tard, je reprends les numéros récupérés pour les envoyer à une requête de mise à jour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            for (i = 0; i < liste_convoc.Count; i++)
            {
                    ConvocFactory.MAJ_quelconque(liste_convoc[i].ToString());
            }
    Je pencherais plutôt par un code qui n'est pas sous la forme d'un entier.
    N'y-a-til pas d'espaces, de point, de virgule, etc. dans le "code"?

    Avec un point d'arrêt, il y a quoi dans Text?

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    526
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 526
    Par défaut
    Merci pour ton aide, ca marche avec ça.
    Et oui, mon code est juste un entier.

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 251
    Par défaut
    J'espère que tu n'es pas repassé par une liste.
    La mienne m'était utile pour réaliser autre chose en court de route.

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

Discussions similaires

  1. [Débutant] récuper les id des lignes cochées dans gridview
    Par owenho dans le forum ASP.NET
    Réponses: 2
    Dernier message: 28/07/2011, 00h12
  2. Réponses: 1
    Dernier message: 29/10/2008, 13h56
  3. Comment colorer une ligne cochée dans un SMDBGrid ?
    Par éminfo dans le forum Composants VCL
    Réponses: 1
    Dernier message: 02/12/2007, 09h05
  4. Réponses: 8
    Dernier message: 30/11/2006, 18h32
  5. Réponses: 2
    Dernier message: 17/05/2006, 13h02

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