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
| protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
//e.SortExpression permet d'avoir le nom de colonne qui vient dêtre cliqué
if(e.SortExpression == this.SortExpression)
{
//tri va se faire sur la même colonne que précédente.
//donc forcement si le tri précédent est ASC alors l'utilisateur a cliqué //pour avoir un tri DESC et vis versa
this.SortDirection = this.SortDirection==SortDirection.Ascending? SortDirection.Descending: SortDirection.Ascending;
}
else
{
//ici, colonne différente du précédente
this.SortDirection = SortDirection.Ascending;
}
//on sauvegarde toujours le nom du colonne pour être compare lors du //prochain postback (tri)
this.SortExpression == e.SortExpression;
//Ici tu fais un rafraîchissement de ton gridview i.e faire une nouvelle //requête en tenant compte du nouvelle valeur de chaque propriété définit //dessus. En gros on essaie de construire la clause Order by du requête select
string clauseOrderBy="";
swith(this.SortExpression)
{
case "PremierColonne" : clauseOrderBy= this.SortDirection==SortDirection.Ascending? "ORDER BY PremierColonne ASC":"ORDER BY PremierColonne DESC";
//de meme pour les autres colonnes
}
//ici tu dois avoir la requête select complète afin de pouvoir requeter de nouveau vers la base et binder ton gridview après.
} |
Partager