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 :

gridview en asp.net


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2009
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 83
    Par défaut gridview en asp.net
    salut!
    voila, je voudrais savoir comment faire pour utiliser un checkbox dans un gridview. voila, il y a trois colonne dans mon gridview et je voudrais recuperer tous les donnees de chaque ligne dans le checkbox est cocher. merci pour votre aide!

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 20
    Par défaut salut
    J'ai repondu a une question similqire il y a peu de temps. Le but etait en plus de gerer les evenements de type tri, pagination...Je te redonne la demarche :



    En utilisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    using System.Collections;
    tu vas utiliser dans le pageload une arraylist pour stocker l'état des cases à cocher:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ArrayList CheckBoxArray;
     
    if (ViewState["CheckBoxArray"] != null)
    {
        CheckBoxArray = (ArrayList)ViewState["CheckBoxArray"];
    }
    else
    {
        CheckBoxArray = new ArrayList();
    }
    Si tu gères la pagination et une cellule d'entête pour cocher ou décocher toutes les cases à cocher, tu vas devoir faire quelque chose qui ressemble à ça :

    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
    int CheckBoxIndex;
        bool CheckAllWasChecked=false;
        CheckBox chkAll =
     
       (CheckBox)GridView1.HeaderRow.Cells[0].FindControl("chkAll");
        string checkAllIndex = "chkAll-" + GridView1.PageIndex;
        if (chkAll.Checked)
        {
            if (CheckBoxArray.IndexOf(checkAllIndex) == -1)
            {
                CheckBoxArray.Add(checkAllIndex);
            }
        }
        else
        {
            if (CheckBoxArray.IndexOf(checkAllIndex) != -1)
            {
                CheckBoxArray.Remove(checkAllIndex);
                CheckAllWasChecked = true;
            }
        }
    Enfin, tu vas itérer sur tes lignes pour vérifier l'état des cases à cocher :

    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
    for (int i = 0; i < GridView1.Rows.Count; i++)
    {
        if (GridView1.Rows[i].RowType == DataControlRowType.DataRow)
        {
            CheckBox chk =
     
    (CheckBox)GridView1.Rows[i].Cells[0].FindControl("CheckBox1");
            CheckBoxIndex = GridView1.PageSize * GridView1.PageIndex + (i + 1);
            if (chk.Checked)
            {
                if (CheckBoxArray.IndexOf(CheckBoxIndex) == -1
                    && !CheckAllWasChecked)
                {
                    CheckBoxArray.Add(CheckBoxIndex);
                }
            }
            else
            {
                if (CheckBoxArray.IndexOf(CheckBoxIndex) != -1
                    || CheckAllWasChecked)
                {
                    CheckBoxArray.Remove(CheckBoxIndex);
                }
            }
        }
    }
    Tu gères maintenant l'état de tes cases à cocher dans une arraylist persistée sur ta page. Il te reste à utiliser cette liste lors de l'évènement que tu gères (sorting, paging...)
    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
    27
    28
    29
    30
    31
     
    ArrayList CheckBoxArray = (ArrayList)ViewState["CheckBoxArray"];
    string checkAllIndex = "chkAll-" + GridView1.PageIndex;
    if (CheckBoxArray.IndexOf(checkAllIndex) != -1)
    {
        CheckBox chkAll =
         (CheckBox)GridView1.HeaderRow.Cells[0].FindControl("chkAll");
        chkAll.Checked = true;
    }
    for (int i = 0; i < GridView1.Rows.Count; i++)
    {
    if (GridView1.Rows[i].RowType == DataControlRowType.DataRow)
    {
        if (CheckBoxArray.IndexOf(checkAllIndex) != -1)
        {
            CheckBox chk =
             (CheckBox)GridView1.Rows[i].Cells[0].FindControl("CheckBox1");
            chk.Checked = true;    
        }
        else
        {
          int CheckBoxIndex =GridView1.PageSize*(GridView1.PageIndex)+(i + 1);
          if (CheckBoxArray.IndexOf(CheckBoxIndex) != -1)
          {
             CheckBox chk =
             (CheckBox)GridView1.Rows[i].Cells[0].FindControl("CheckBox1");
            chk.Checked = true;
          }
        }
    }
    }
    En espérant que cela te seras utile. Je t'invite à jeter un oeil aux notion de viewstate si tu n'es pas familier avec

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 20/09/2012, 13h13
  2. gridview avec asp.net
    Par falifalibe2 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 22/10/2009, 03h05
  3. Templates Gridview beau ASP .NET
    Par cl@ndestIno dans le forum Général Dotnet
    Réponses: 0
    Dernier message: 19/05/2009, 17h12
  4. Utilisation de gridview en Asp.net
    Par Ya7yaKech dans le forum ASP.NET
    Réponses: 8
    Dernier message: 11/05/2009, 15h04
  5. Pbm Pagination Gridview en ASP.net
    Par kheironn dans le forum ASP.NET
    Réponses: 3
    Dernier message: 13/06/2007, 17h32

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