Désactiver le tri d'un gridview

Résolu
equinoxe83 Messages postés 240 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 18 février 2011 - 8 sept. 2008 à 17:02
equinoxe83 Messages postés 240 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 18 février 2011 - 10 sept. 2008 à 13:03
Bonjour à tous,
J'ai un soucis avec le tri sur l'entête d'un gridview.
Si je clique sur un entête de colonne, il tri sur la colonne ... Donc tout est bien !!
Le Pb que j'ai, c'est que je souhaite, après un nouveau databind (suite à l'application de filtres (des cases à cocher permettant de ne rapporter que certains enregistrement), annuler le tri par cette colonne.
Mais je ne vois pas bien quelle propriété du gridview appeler.
Quelqu'un à une idée ??
Merci d'avance
@+

9 réponses

equinoxe83 Messages postés 240 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 18 février 2011
10 sept. 2008 à 11:28
Finalement, j'ai trouvé une solution toute bête.
Je reset le sort du gridview avec une valeur de tri nulle
AttenteGV.Sort(

"", SortDirection.Ascending)

Merci à toi!!
@+
3
ggtry Messages postés 417 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 21 juillet 2010 1
10 sept. 2008 à 13:00
Sur l'événement Sorting, tu peux faire un truc du genre :

For n As Integer = 0 To GridView1.Columns.Count - 1
            If GridView1.Columns(n).SortExpression = e.SortExpression Then
                GridView1.Columns(n).HeaderStyle.BackColor = Drawing.Color.Red
            Else
                GridView1.Columns(n).HeaderStyle.BackColor = Drawing.Color.White
            End If
 Next

GGtry
3
ggtry Messages postés 417 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 21 juillet 2010 1
8 sept. 2008 à 22:45
Bonsoir,

Pour désactiver le tri sur toutes les colonnes, tu peux utiliser (en vb) :

GridView1.AllowSorting = "false"

Pour le désactiver uniquement sur une colonne particulière, tu peux vider sa propriété SortExpression, par exemple (ici pour la troisième colonne) :

GridView1.Columns(2).SortExpression = ""

Cordialement,

GGtry
0
equinoxe83 Messages postés 240 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 18 février 2011
10 sept. 2008 à 07:51
bonjour ggtry,
merci pour la réponse!!
Ce qui m'annène une autre question :
comment savoir sur quelle coonne est réalisé le tri ?
@+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ggtry Messages postés 417 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 21 juillet 2010 1
10 sept. 2008 à 10:50
Bonjour,

Je ne sais pas s'il y a un meilleur moyen, mais pour déterminer sur quelle colonne le tri a été réalisé, tu peux d'abord récupérer le sortExpression de la gridview avec :
GridView1.SortExpression (pour le récupérer sur l'événement sorting, tu dois utiliser e.SortExpression pour obtenir l'expression de tri qui vient d'être choisie).
Pour récupérer l'index de la colonne, il y aurait peut-être mieux, mais tu peux faire une boucle en comparant GridView1.Columns(n).SortExpression et GridView1.SortExpression, pour déterminer à quelle colonne apparatient le SortExpression en cours.

GGtry
0
equinoxe83 Messages postés 240 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 18 février 2011
10 sept. 2008 à 11:00
J'ai aussi pensé à la boucle.
Je teste tout ça et retourne mon résultat.
Merci GGtry !
0
ggtry Messages postés 417 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 21 juillet 2010 1
10 sept. 2008 à 12:04
D'accord. Ce que tu voulais, c'était annuler le tri effectué, et pas empêcher le tri sur la gridview après l'opération de filtrage ?
Je n'avais pas compris.

GGtry
0
equinoxe83 Messages postés 240 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 18 février 2011
10 sept. 2008 à 12:20
C'est ça !!
J'ai du mal le présenter ...
Petite question subsidiaire :
Comment changer l'aspect de la cellule sur laquelle on opère le tri (genre on passe en fond rouge la cellule du header qui sert au tri).
Il n'y aurait pas un style pour ça ?
@+ et encore merci ..
0
equinoxe83 Messages postés 240 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 18 février 2011
10 sept. 2008 à 13:03
Et oui ...
Toujours une boucle ...
Celà dit, ça fonctionne effectivement très bien!
Merci
@+
0
Rejoignez-nous