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 :

[ASP.NET 2.0][C#] Tri sur un GridView avec actions


Sujet :

ASP.NET

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 29
    Points : 21
    Points
    21
    Par défaut [ASP.NET 2.0][C#] Tri sur un GridView avec actions
    Bonjour à tous,

    Le titre est pas très explicite mais je vais développer.
    J'ai un GridView que je charge à l'aide d'un ObjectDataSource. Une fois chargé je met des couleurs dans certaines cellules à certaines conditions.
    Mon problème est lorsque je veux trier mon GridView les couleurs disparaissent.

    J'ai essayé de mettre les événements Sorting et Sorted en mettant mes actions de mise en couleur à l'intérieur mais rien n'y fait. Il passe dedans mais les cases restent désespérément blanches.

    Et en étant franc, en regardants les différents exemples et aides, je n'ai absolument rien compris.

    Désolé de vous harceler mais VS 2005 est tout de même nouveau pour moi.

    Merci pour votre aide
    Cordialement.

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Salut à toi,

    As tu essayé de mettre ton action de mise en couleur de l'événement RowDataBound de ton GridView ?

    Peux tu également nous montrer ton code pour que l'on puisse t'aider plus facilement.

    A titre d'exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    protected void gdvTestCouleur_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                e.Row.Cells[3].Attributes["style"] = "background-color:Red;";            
            }
         }
    ++

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 29
    Points : 21
    Points
    21
    Par défaut
    Je viens de tester ta solution, ça ne fonctionne pas !!!

    Voici mon code qui me permet de mettre les couleurs que j'ai dans l'événement Click d'un bouton:
    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
     
            int cpt_grid = GridView1.Rows.Count;
            DateTime date1 = new DateTime();
            DateTime date2 = new DateTime();
            DateTime date3 = new DateTime();
            for (int i = 0; i < cpt_grid; i++)
            {
     
                date2  = Convert.ToDateTime(GridView1.Rows[i].Cells[10].Text);
     
                date3  = Convert.ToDateTime(GridView1.Rows[i].Cells[12].Text);
     
                if ((GridView1.Rows[i].Cells[11].Text != "" && GridView1.Rows[i].Cells[11].Text != "&nbsp;"))
                {
     
                    date1  = Convert.ToDateTime(GridView1.Rows[i].Cells[11].Text);
     
                      if (date1 > date2 )
                    {
                        GridView1.Rows[i].Cells[11].BackColor = Color.Yellow;
                        GridView1.Rows[i].Cells[11].ForeColor = Color.Black;
                        GridView1.Rows[i].Cells[11].Font.Bold = true;
                    }
                }
     
                if (date3  > date2 )
                {
                    GridView1.Rows[i].Cells[12].BackColor = Color.Red;
                    GridView1.Rows[i].Cells[12].ForeColor = Color.White;
                    GridView1.Rows[i].Cells[12].Font.Bold = true;
                }
            }
    J'ai mis exactement la même chose dans Sorting et Sorted.
    Pour les données, je bind directement avec les composants disponibles dans VS 2005.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    //DataSource1
    ObjectDataSource1.SelectParameters.Clear();
    ObjectDataSource1.SelectParameters.Add("Param1", StringParam1);
     
    GridView1.DataBind();
    Je préfère en mettre un peu plus que pas assez !!
    Merci à tous

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par Wishmaster Voir le message
    J'ai mis exactement la même chose dans Sorting et Sorted.
    ce n'est pas dans les événement Sorting et Sorted que tu doit mettre ton code mais dans l'événement RowDataBound.

    et dans ton code tu remplace "GridView1" par "e" et tu enlève ta boucle for

    Ce qui donne un truc de ce genre là :

    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
     
                date2  = Convert.ToDateTime(e.Row.Cells[10].Text);           
                date3  = Convert.ToDateTime(e.Row.Cells[12].Text);
     
                if ((e.Row.Cells[11].Text != "" && e.Row.Cells[11].Text != "&nbsp;"))
                {
                    date1  = Convert.ToDateTime(e.Row.Cells[11].Text);
     
                      if (date1 > date2 )
                    {
                        e.Row.Cells[11].BackColor = Color.Yellow;
                        e.Row.Cells[11].ForeColor = Color.Black;
                        e.Row.Cells[11].Font.Bold = true;
                    }
                }
     
                if (date3  > date2 )
                {
                    e.Row.Cells[12].BackColor = Color.Red;
                    e.Row.Cells[12].ForeColor = Color.White;
                    e.Row.Cells[12].Font.Bold = true;
                }
            }

Discussions similaires

  1. [ASP.NET 2.0] Pagination/Tri avec un Repeater?!
    Par Danny Blue dans le forum ASP.NET
    Réponses: 7
    Dernier message: 28/10/2011, 10h08
  2. [ASP.NET 2.0][C#] conseil sur les GridView
    Par toinou62 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 27/12/2007, 14h02
  3. [asp.NET 2.0]Contrôle modifiable sur un GridView
    Par pulsar125 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 15/06/2007, 22h17
  4. Réponses: 2
    Dernier message: 13/12/2006, 18h57
  5. [VB.NET] Problème de tri sur Datagrid/gridview multilingue
    Par crimsonPhantom dans le forum ASP.NET
    Réponses: 4
    Dernier message: 16/03/2006, 22h41

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