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, CheckBox et pager


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Par défaut GridView, CheckBox et pager
    Bonjour,

    j'ai une page affichant une liste paginée (gridview) dans une fenêtre modale. Cette gridview est alimentée par un objectdatasource qui ma ramène uniquement les valeurs à afficher.

    Cette liste est composée de quatre champs dont un identifiant et une checkbox.
    Ma modale possède un bouton save qui sauvegardera en base de données les éléments sélectionnés.

    Seulement ma liste possède plusieurs pages. Il faut donc que je puisse conserver la saisie d'une page à l'autre.

    J'avais pensé utilisé une liste qui serait nourrie à chaque changement de page.
    J'en avais d'abord fait une variable de classe. Lorsque je passe de ma première page à ma seconde page, ma liste est bien remplie. Aucun souci.

    Si je reviens à ma première page, je perds mes valeurs de la première page.
    Un peu de code si nécessaire :
    Code c# : 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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    public partial class DetaUser : WebInterface
    {
       private List<string> checkBoxChecked;
       protected override void Page_Load(object sender, EventArgs e)
       {
          checkBoxChecked = new List<string>();
       }
     
       protected void btnNext_Click(object sender, System.Web.UI.ImageClickEventArgs e)
       {
          SaveCheckBox();
       }
     
       protected void btnPrevious_Click(object sender, System.Web.UI.ImageClickEventArgs e)
       {
          SaveCheckBox();
       }
     
       private void SaveCheckBox() {
          CheckBox chkSelected;
          string identifiant;
          foreach (GridViewRow r in applicationGridView.Rows)
          {
             // VERIFIER que l'on est sur uen ligne
             if (r.RowType == DataControlRowType.DataRow) {
                // RECUPERER le checkbox
                chkSelected = r.FindControl("chkSelection") as CheckBox;
                // RECUPERER l'identifiant associé
                identifiant = (r.FindControl("identifiant") as Label).Text;
                 // VERIFIER s'il existe dans la liste
                var q = from e in checkBoxChecked
                           where e.ToString().Equals(identifiant)
                           select true;
                bool result = q.SingleOrDefault();
     
                if (chkSelected.Checked && !result)
                {
                   // AJOUTER si pas de résultat
                   checkBoxChecked.Add(identifiant);
                }
                else if (result)
                {
                   checkBoxChecked.Remove(identifiant);
                }
             }
          }
          afficheList();
       }
    }

    Pour info, je ne peux pas utiliser de variable de session
    Merci de votre aide

  2. #2
    Membre Expert
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Par défaut
    En fait, je passe par un champ caché et j'arrive donc à gérer ma sauvegarde des checkbox sélectionnés.

    Il y a peut être plus sexy. Si jamais vous avez des idées

  3. #3
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par défaut
    Passer par le viewstate ? (c'est pas bcp plus sexy mais un peu quand meme)

Discussions similaires

  1. Gridview : Personnalistation du Pager
    Par PORTES dans le forum ASP.NET
    Réponses: 1
    Dernier message: 02/07/2010, 15h23
  2. GridView + CheckBox
    Par museman dans le forum ASP.NET
    Réponses: 5
    Dernier message: 06/04/2010, 09h37
  3. Gridview, checkbox et button
    Par achrafiac dans le forum ASP.NET
    Réponses: 13
    Dernier message: 12/03/2010, 17h32
  4. GridView : checkbox ne se cochent pas !
    Par maynoush dans le forum ASP.NET
    Réponses: 0
    Dernier message: 04/02/2009, 12h10
  5. gridview+checkbox+sélectionner 1 checkbox
    Par tortuegenie dans le forum ASP.NET
    Réponses: 2
    Dernier message: 07/03/2008, 08h51

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