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 PageIndexChanging ou Changed?


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 56
    Par défaut Gridview PageIndexChanging ou Changed?
    Bonjour,

    J'ai un gridview alimenté par un sqldatasource et dans lequel j'ai rajouté un checkbox je met à true ou false selon certain critères mais le problème est qu'à chaque fois que je change de page dans le gridview, les valeurs des checkbox sont fausses!
    J'ai alors implémenté la méthode OnPageIndexChanging, je lui donne le nouvel index puis fais l'opération sur mes checkbox jusqu'à là tout fonctionne bien mais à l'affichage les checkbox sont toutes à false !
    même chose pour OnPageIndexChanged, là c'est encore pire, j'avais compris qu'il s'exécutait après la pagination du gridview mais quand je vais voir dans quelle page il est, il se trouve tjrs dans la précédente!

    enfin bref dans les 2 cas, je pense qu'il y a quelque chose qui s'exécute après ces méthodes et qui me change les valeurs de mes checkbox mais je ne vois pas quoi !!!

    Quelqu'un pourrait m'aider, svp.

    mon code Page_Load:
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
     
     protected void Page_Load(object sender, EventArgs e)
        {
            NameValueCollection coll;
            coll = Request.ServerVariables;
            user = coll["LOGON_USER"].ToString();
            SqlParameter puser = new SqlParameter("@user", SqlDbType.VarChar);
            puser.Value = user;
     
            Db conn = new Db();
            conn.Open();
            conn.GetTable("select wp_vestigingsnr, nom, nomnl, idmag" +
                          " from UPEPU, batiments,stmagasin" +
                          " where UPPER(account)=UPPER(@user)"+
                          " and codvest= wp_vestigingsnr and codvest=bat");
            conn.AddParam(puser);
            SqlDataReader result = conn.GetResult();
            if (result.Read())
            {
                vestnr = int.Parse(result["wp_vestigingsnr"].ToString());
                magid = int.Parse(result["idmag"].ToString());
                magazijn = result["nom"].ToString();
                Lmag.Text = magazijn.Trim(); //Titel
            }
            result.Close();
            SqlParameter pvestnr = new SqlParameter("@vestnr", SqlDbType.Int);
            pvestnr.Value = vestnr;
     
            conn.GetTable(" select *" +
                          " from stvwprodcom" +
                          " where codvest = @vestnr"+
                          " order by quantcmd");
     
            conn.AddParam(pvestnr);
            SqlDataSource2.SelectParameters.Clear();
            SqlDataSource2.SelectParameters.Add("vestnr", pvestnr.Value.ToString());
     
            SqlDataSource2.SelectCommand = conn.getCmd();
     
            if (!IsPostBack)
            {
            for (int i = 0; i < GridView1.Rows.Count; i++)
                {
                    string test = GridView1.Rows[i].Cells[6].Text.ToString();
                   tot = int.Parse(GridView1.Rows[i].Cells[6].Text);
                    if (tot < 1)
                    {
                        ((CheckBox)(GridView1.Rows[i].FindControl("cbSelect"))).Checked = true;
                        ((CheckBox)(GridView1.Rows[i].FindControl("cbSelect"))).Visible = false;
                    }
                    else
                    {
                        ((CheckBox)(GridView1.Rows[i].FindControl("cbSelect"))).Checked = false;
                        ((CheckBox)(GridView1.Rows[i].FindControl("cbSelect"))).Visible = true;
                    }
                }
            }
            conn.Close();
        }
    méthode OnPageIndexChanging :
    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
     
     protected virtual void gridChange(object sender, GridViewPageEventArgs e)
        {
            GridView1.PageIndex = e.NewIndex;
            GridView1.DataBind();
            for (int i = 0; i < GridView1.Rows.Count; i++)
            {
                string test = GridView1.Rows[i].Cells[6].Text.ToString();
                tot = int.Parse(GridView1.Rows[i].Cells[6].Text);
                if (tot < 1)
                {
                    ((CheckBox)(GridView1.Rows[i].FindControl("cbSelect"))).Checked = true;
                    ((CheckBox)(GridView1.Rows[i].FindControl("cbSelect"))).Visible = false;
                }
                else
                {
                    ((CheckBox)(GridView1.Rows[i].FindControl("cbSelect"))).Checked = false;
                    ((CheckBox)(GridView1.Rows[i].FindControl("cbSelect"))).Visible = true;
                }
            }
        }
    P.S : la 1ère fois que rentre dans la page tout fonctionne bien donc les checkbox ont les bonnes valeurs, c'est que quand je change de page que ca déconne!

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 56
    Par défaut
    Bon je viens de constater qu'avec le PageIndexChanged, il est bien dans la bonne page mais les valeurs des checkbox sont toujours fausses à l'affichage !

    OnPageIndexChanged :
    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
     
     
    protected virtual void gridChange(object sender, EventArgs e)
        {
            int page = GridView1.PageIndex;
            for (int i = 0; i < GridView1.Rows.Count; i++)
            {
                tot = int.Parse(GridView1.Rows[i].Cells[6].Text);
                if (tot < 1)
                {
                    ((CheckBox)(GridView1.Rows[i].FindControl("cbSelect"))).Checked = true;
                    ((CheckBox)(GridView1.Rows[i].FindControl("cbSelect"))).Visible = false;
                }
                else
                {
                    ((CheckBox)(GridView1.Rows[i].FindControl("cbSelect"))).Checked = false;
                    ((CheckBox)(GridView1.Rows[i].FindControl("cbSelect"))).Visible = true;
                }
            }
        }
    exemple: à la ligne 5 de la page 2, il met bien (dans le code) la checkbox à true mais à l'affichage elle est à false !

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 56
    Par défaut
    ok trouvé...
    il fallait implémenter une méthode dans OnRowDataBound et non dans les pageindexchanged...

    a+

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

Discussions similaires

  1. [Débutant] gridview pageindex changing
    Par luchoo dans le forum ASP.NET
    Réponses: 1
    Dernier message: 14/12/2011, 10h31
  2. Comment change l'utilisateur root de mysql?
    Par silvermoon dans le forum Installation
    Réponses: 3
    Dernier message: 29/10/2003, 11h25
  3. En quoi XML est-il un moyen universel d'échange de données ?
    Par Pomalaix dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 27/01/2003, 11h29
  4. Evenement Change
    Par PierDIDI dans le forum Composants VCL
    Réponses: 3
    Dernier message: 28/08/2002, 10h08
  5. Réponses: 3
    Dernier message: 22/07/2002, 14h19

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