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 :

Sélection multiple dans un griedview


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 Sélection multiple dans un griedview
    Bonjour,

    J'ai un contrôle griedview composé de plusieurs colonnes de données.
    J'ai aussi inséré une première colonnes composée de checkbox.
    Par contre, je ne sais pas comment intégrer une checkbox dans l'entête qui permettrait de sélectionner où de désélectionner en une seule fois l'ensemble des checkbox de toutes mes lignes.

    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
     <asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
               AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="Code" 
               DataSourceID="SqlDataSource1" BorderColor="#94979A" CellPadding="10" BackColor="#ECEBEF"  HeaderStyle-BackColor="#6A97D0" AlternatingRowStyle-BackColor="#D2DBE6" HeaderStyle-ForeColor="White">
               <Columns>
     
                   <asp:TemplateField>
                 <ItemTemplate>
                      <asp:CheckBox ID="CheckBox1" runat="server" />
                 </ItemTemplate>
                   </asp:TemplateField>
     
                   <asp:BoundField DataField="Code" HeaderText="Code" ReadOnly="True" 
                       SortExpression="Code"  />
                   <asp:BoundField DataField="Statut" HeaderText="Statut" 
                       SortExpression="Statut" />
                   <asp:BoundField DataField="Responsable" HeaderText="Responsable" 
                       SortExpression="Responsable" />
                   <asp:BoundField DataField="Libellé" HeaderText="Libellé" 
                       SortExpression="Libellé" />
                   <asp:BoundField DataField="Date de réclamation" 
                       HeaderText="Date de réclamation" SortExpression="Date de réclamation" />
     
     
               </Columns>
           </asp:GridView>
    Est-ce que quelqu'un pourrait me dire comment faire ?

    Merci.

  2. #2
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    Bonjour,

    Essaye ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <asp:TemplateField ShowHeader="False">
                    <ItemTemplate>
                        <asp:CheckBox ID="chkBox" runat="server" />
                    </ItemTemplate>
                    <HeaderTemplate>
                        <asp:CheckBox ID="cbSelectAll" runat="server" Text="Check All" />
                    </HeaderTemplate>
        </asp:TemplateField>
    et ceci :

    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
    <script type="text/javascript">
         function SelectAll(id) {
             //get reference of GridView control
             var grid = document.getElementById("<%= TaGridView.ClientID %>");
             //variable to contain the cell of the grid
             var cell;
     
             if (grid.rows.length > 0) {
                 //loop starts from 1. rows[0] points to the header.
                 for (i = 1; i < grid.rows.length; i++) {
                     //get the reference of first column
                     cell = grid.rows[i].cells[12];
     
                     //loop according to the number of childNodes in the cell
                     for (j = 0; j < cell.childNodes.length; j++) {
                         //if childNode type is CheckBox                 
                         if (cell.childNodes[j].type == "checkbox") {
                             //assign the status of the Select All checkbox to the cell checkbox within the grid
                             cell.childNodes[j].checked = document.getElementById(id).checked;
                         }
                     }
                 }
             }
         }
     </script>
    Et encore ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    protected void TaGridView_RowDataBound(object sender, GridViewRowEventArgs e)
            {
                if (e.Row.RowType == DataControlRowType.Header)
                {
                    //Find the checkbox control in header and add an attribute
                    ((CheckBox)e.Row.FindControl("cbSelectAll")).Attributes.Add("onclick", "javascript:SelectAll('" +
                            ((CheckBox)e.Row.FindControl("cbSelectAll")).ClientID + "')");
                }
    }
    Un solution parmi tant d'autres.

    En espérant t'avoir aidé.

  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
    Ok mais ta fonction TaGridView_RowDataBound, tu l'appelle quelque part car je l'ai placé en code behind et cela ne produit effet ?

  4. #4
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    Et bien tu utilises l'event OnRowDataBound de ta GridView....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OnRowDataBound="TaGridViewLaTiennePasLaMienne_RowDataBound"

  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
    Par contre, je me demandais à quoi correspondait ton ClientID dans
    var grid = document.getElementById("<%= TaGridView.ClientID %>");
    et
    ((CheckBox)e.Row.FindControl("cbSelectAll")).ClientID + "')");
    car j'ai une erreur de la part d'une déboggeur d'IE qui me dit :

    'childNodes' a la valeur Null ou n'est pas un objet
    J'ai essayé de le remplacer par "Code" mais problème.

    Est-ce que tu sais d'où vient le problème ? Merci.

  6. #6
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    Dis voir, tu as quand même bien lu ceci dans mon précédent message :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TaGridViewLaTiennePasLaMienne
    ??

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

Discussions similaires

  1. Sélection multiple dans un sous formulaire ?
    Par _developpeur_ dans le forum Access
    Réponses: 2
    Dernier message: 09/03/2019, 01h05
  2. Réponses: 2
    Dernier message: 24/08/2006, 11h33
  3. Sélection Multiple dans une JTable
    Par bobic dans le forum Composants
    Réponses: 3
    Dernier message: 07/08/2006, 17h35
  4. sélection multiple dans plusieurs zones de liste
    Par malabar92 dans le forum Access
    Réponses: 2
    Dernier message: 16/05/2006, 01h08
  5. [Débutant] Sélection multiples dans une Listbox
    Par eraim dans le forum Access
    Réponses: 4
    Dernier message: 15/10/2005, 03h21

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