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 2.0 Tri manuel gridview ASC/DESC probleme avec le pagging


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 4
    Par défaut ASP 2.0 Tri manuel gridview ASC/DESC probleme avec le pagging
    Bonjour,

    J'utilise un gridview (ASP 2.0) j'ai implemente manuelement le tri quand je clique sur les headers des colonnes avec le flip/flop ASC/DESC tout cela fonctionne bien seulement... quand j'affiche la seconde page de mon gridview le sorting repasse automatiquement a ASC...

    mon code :
    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
     
    //je fais persister le sortdirection dans le viewstate
      protected SortDirection CurrentDirection
        {
            get
            {
                if (this.ViewState["CurrentDirection"] != null)
                {
                    return (SortDirection)this.ViewState["CurrentDirection"];
                }
                return SortDirection.Ascending;
            }
            set { this.ViewState["CurrentDirection"] = value; }
        }
     
        protected void gvJob_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
     
             //ici je ne sais pas quoi faire pour garder le sortdirection a DESC il repasse automatiquement a ASC
     
            gvJob.PageIndex = e.NewPageIndex;
            gvJob.DataBind();
        }
     
        protected void gvJob_Sorting(object sender, GridViewSortEventArgs e)
        {
     
            this.CurrentDirection = CurrentDirection == SortDirection.Ascending ? SortDirection.Descending : SortDirection.Ascending;
     
     
            DataTable dataTable = gvJob.DataSource as DataTable;
     
            if (dataTable != null)
            {
                DataView dataView = new DataView(dataTable);
                dataView.Sort = e.SortExpression + " " + ConvertSortDirectionToSql(CurrentDirection);
     
                gvJob.DataSource = dataView;
     
                gvJob.DataBind();
            }
        }
     
        private string ConvertSortDirectionToSql(SortDirection sortDirection)
        {
            string newSortDirection = String.Empty;
     
            switch (sortDirection)
            {
                case SortDirection.Ascending:
                    newSortDirection = "ASC";
                    break;
     
                case SortDirection.Descending:
                    newSortDirection = "DESC";
                    break;
            }
     
            return newSortDirection;
        }
    Des idees ???

    (pardon pour les accents => clavier qwerty inside...)

    merci d'avance

  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
    Tu dois retrier quand tu changes de page

  3. #3
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 4
    Par défaut
    Tu veux dire manuellement en recliquant sur le header de la colonne ou en executant le tri dans le PageIndexChanging ?

    Le probleme c'est que dans le PageIndexChanging je n'ai pas acces au SortExpression par exemple...

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2008
    Messages : 5
    Par défaut
    Salut,

    Je ne sais pas si tu as trouvé la solution mais pour toi ou pour les personnes suivantes voici mon code :

    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
    protected void gvListe_OnPageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        gvListe.DataSource = getDataSource();
        gvListe.Sort(ViewState["_SortExp_"].ToString(), (SortDirection)ViewState["_Direction_"]);
        gvListe.PageIndex = e.NewPageIndex;
        gvListe.DataBind();
    }
     
    protected void gvListe_OnSorting(object sender, GridViewSortEventArgs e)
    {
        string sortExp = (string.IsNullOrEmpty(e.SortExpression)) ? ViewState["_SortExp_"].ToString() : e.SortExpression;
        DataTable dataTable = gvListe.DataSource as DataTable;
     
        if (dataTable != null)
        {
            DataView dataView = new DataView(dataTable);
            dataView.Sort = sortExp + " " + ((e.SortDirection==SortDirection.Ascending) ? "ASC" : "DESC");
     
            gvListe.DataSource = dataView;
            gvListe.DataBind();
        }
     
        ViewState["_Direction_"] = e.SortDirection;
        ViewState["_SortExp_"] = sortExp;
    }

    Pourvut que ca puisse aider quelqu'un...

    @+

Discussions similaires

  1. [ASP.NET / C#] Tri d'un GridView
    Par Imageek dans le forum ASP.NET
    Réponses: 3
    Dernier message: 14/12/2010, 09h26
  2. [Asp.Net]TextBox dans une Gridview
    Par Noobs_ dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 08/06/2009, 02h39
  3. Tri du Gridview
    Par tawfikbe dans le forum ASP.NET
    Réponses: 3
    Dernier message: 23/05/2009, 23h55
  4. [ASP.NET C# 2.0] Gridview déconnecté
    Par dinbougre dans le forum ASP.NET
    Réponses: 10
    Dernier message: 02/08/2007, 13h52
  5. [asp.net2] Probleme avec GridView
    Par mikky dans le forum ASP.NET
    Réponses: 7
    Dernier message: 21/02/2007, 16h38

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