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 :

Récupération de l'ordre du tri automatique en code behind


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    526
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 526
    Par défaut Récupération de l'ordre du tri automatique en code behind
    Bonjour,

    J'ai un gridview possedant une colonne personnalisé contenant le titre (sous forme de lien) et deux images (flêche haut et flêche basse) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <asp:TemplateField ShowHeader="False" HeaderText="Responsable" SortExpression="Responsable">
                    <ItemTemplate>
                         <asp:Label ID="Responsable" runat="server" Text='<%# Eval("Responsable") %>'></asp:Label>                     
                    </ItemTemplate>
                    <HeaderTemplate>
     
                       <asp:LinkButton Text="Responsable" ForeColor="White" runat="server" Font-Underline="true" CommandName="Sort" CommandArgument="Responsable"></asp:LinkButton>
                       <asp:Image ID="ImageTC2" ImageUrl="/Images_Projet/Images/TriCroissant.png" runat="server" width="15" height="15"/>
                       <asp:Image ID="ImageTDC2" ImageUrl="/Images_Projet/Images/TriDecroissant.png" runat="server" width="15" height="15"/>
     
                    </HeaderTemplate>
                   </asp:TemplateField>
    Je voudrais savoir si il était possible de récupérer dans le code behind l'ordre du tri au moment du clic sur le titre (ce qui me permettrait d'afficher ou pas les images).

    Je sais qu'il faut passer par l'évenement OnSorting mais je ne vois pas comment faire la récupération de l'ordre du tri.
    Est-ce que quelqu'un saurait comment faire?

    Merci.

  2. #2
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    C'est à toi de stocker l'ordre de tri. Généralement on stocke ça dans le ViewState pour le récupérer à travers les différents post backs

  3. #3
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    Bonjour,

    Tu as un exemple ici. Sinon tu peux faire une recherche sur google avec les mots clés GridView + SortDirection ou encore SortExpression.

    Il faut que tu acquiers le réflexe de chercher sur google ou MSDN lorsque tu ne sais pas comment faire telle ou telle chose.... Le forum n'est pas une FAQ mais bel et bien un forum d'entraide où poster lorsque tu es coincé sur un problème.

    En espérant t'avoir aidé.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    526
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 526
    Par défaut
    Ok, j'ai bien compris la partie pour récupérer l'ordre du tri.
    Cependant, malgré mes recherches, je ne vois pas comment accéder à la propriété visible des images de la colonne triée (ce qui me permettrait d'afficher ou pas l'une où l'autre des flêches).

    Mon fonction qui va être appelé sur l'événement onsorting est :

    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
     protected void GridView_Sorting(object sender, GridViewSortEventArgs e)
            {
     
                    if (GetSortDirection(e.SortExpression).Equals("ASC"))
                    {
     
                            //Affichage de la flêche ascendante
     
                    }
     
                    else if (GetSortDirection(e.SortExpression).Equals("DESC"))
                    {
     
                          //Affichage de la flêche descendante
                    }
     
            }
    Fonction pour récupérer l'ordre de tri :
    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
     private string GetSortDirection(string column)
            {
     
                // Par défaut, la direction de tri est ascendante
                string sortDirection = "ASC";
     
                // Récupère la dernière colonne triée
                string sortExpression = ViewState["SortExpression"] as string;
     
                if (sortExpression != null)
                {
                    if (sortExpression == column)
                    {
                        string lastDirection = ViewState["SortDirection"] as string;
                        if ((lastDirection != null) && (lastDirection == "ASC"))
                        {
                            sortDirection = "DESC";
                        }
                    }
                }
     
                // Sauvegarde les nouvelles valeurs dans le viewstate
                ViewState["SortDirection"] = sortDirection;
                ViewState["SortExpression"] = column;
     
                return sortDirection;
            }
    Si quelqu'un pourrait m'indiquer la marche à suivre. Merci d'avance.

  5. #5
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    Heu, je n'avais pas trop fait attention à ce que tu voulais faire avec le Sort, je me suis focalisé sur ta question, à savoir : récupérer l'ordre du tri dans le code-behind.

    Mais pour revenir sur ce que tu souhaites mettre en place : des images représentant des flèches qui indiquent le sens du tri dans le Header de ta GridView.... ce n'est pas la bonne marche à suivre.

    Je m'expllique : tu ajoutes des contrôles Image (pas des contrôles HTML purs, mais bel et bien des contrôles serveur ASP.NET) alors que tu pourrais via une simple classe CSS ajouter à la volée des flèches en image. La page est moins lourde et plus rapide.

    Tu as un exemple sympa ici, avec code source et démo en ligne. Sinon, ce ne sont pas les exemples qui manquent sur le présent forum ou sur Google.

    En espérant t'avoir aidé.

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

Discussions similaires

  1. [XL-2003] Recopiage de ligne variable automatique selon un ordre de tri
    Par VictorienR dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 27/02/2015, 15h17
  2. [SQL2K]URGENT: récupérer jeu de caractères et ordre de tri ?
    Par webtheque dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 26/04/2005, 11h43
  3. Ordre des tris / fonction upper
    Par slylafone dans le forum Débuter
    Réponses: 7
    Dernier message: 18/01/2005, 17h53
  4. Réponses: 7
    Dernier message: 20/10/2004, 08h26
  5. [VBA-E] [Excel] Tri automatique
    Par bovi dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/10/2002, 10h19

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