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 :

[C#] Trier un Datagrid


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 91
    Par défaut [C#] Trier un Datagrid
    Bonjour, je souhaiterais trier mon Datagrid en fonction de l'entete de colonne sur laquelle j'ai cliqué...

    Donc, c'est un peu comme le sujet:
    http://www.developpez.net/forums/viewtopic.php?t=320297

    Mais sauf que je souhaiterais faire le triage du datagrid quand je clique uniquement sur une des entetes de celui-ci.

    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Par défaut
    C'est ce qui se passe dans l'autre post. C'est lors du clic que le tri se fait.

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 91
    Par défaut
    Le code est le suivant:
    public void SortCmd(object sender, DataGridSortCommandEventArgs e)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    { 
       try 
       { 
       string orderBy = new System.Text.StringBuilder(e.SortExpression).Append(" ").Append(this.DgSchools.Attributes[e.SortExpression]).ToString(); 
     
       this.DgSchools.DataSource = UneDataTable; // (requete avec une clause ORDER BY) 
       this.DgSchools.DataBind(); 
     
       this.DgSchools.Attributes[e.SortExpression] = this.DgSchools.Attributes[e.SortExpression]=="ASC"? "DESC":"ASC"; 
        } 
        catch (Exception ex) { ... } 
    }
    A quoi sert la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.DgSchools.Attributes[e.SortExpression] = this.DgSchools.Attributes[e.SortExpression]=="ASC"? "DESC":"ASC";
    ???

  4. #4
    Expert confirmé
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.DgSchools.Attributes[e.SortExpression]
    on met une valeur à un attribut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.DgSchools.Attributes[e.SortExpression]=="ASC"? "DESC":"ASC";
    On regarde l'ancienne valeur. Si c'etait ASC, ca renvoie DESC sinon ca renvoie ASC

    C'est un attribut de la colonne du DataGrid quoi

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 91
    Par défaut
    Merci,
    A priori, ça marche impeccable quand je fais mes tests...

    Par contre, en pratique, j'ai un léger souci, c'est que quand je clique sur une entete de mon DataGrid, je rentre deux foix dans ma methode public void dtgLstCr_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
    Donc du coup, il n'alterne plus entre DESC at ASC et le tri ne se fait qu'une seule fois...

    Il doit y avoir une histoire de "page.IsPostBack", j'ai essayé en mettant un "if" dans ma methode mais ça ne change rien...

    Des idées ?

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 91
    Par défaut
    Bon, j'ai réussi à n'exécuter qu'une seule fois mon code, en utilisant un flag au sein de la méthode...
    Mais bon, je ne comprends toujours pas pkoi il l'exécute 2 fois...

    Peut etre 1 fois quand je clique, et 1 fois kan je relache... je sais pas...

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

Discussions similaires

  1. [Débutant] trier elements datagrid
    Par yrtera dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 30/10/2012, 23h05
  2. Ne pas trier un datagrid
    Par HENRYC dans le forum C#
    Réponses: 2
    Dernier message: 26/10/2010, 14h43
  3. Trier une datagrid sur une colonne de numeric
    Par MaitreTsiang dans le forum MXML
    Réponses: 0
    Dernier message: 16/01/2009, 12h34

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