ASP.NETのGridViewで、自前でソート機能をつけるときに参考になる記事

基本的にはgridView.AllowSorting=Trueに設定して、ソートしたい列のプロパティのSortExpressionを設定する。
するとSortingイベントが発生するので、Sortingイベントハンドラで、指定された順で取得しなおしたデータをgridViewのデータソースに設定しなおしてやる。
ソートした項目は自前で保存しておけば、前回と同じ項目でソートしたとき昇順・降順を切り替えられる。
gridView.RowDataBoundイベントハンドラで、ソートした項目のヘッダを描画するときにCssClassなどを指定すればソートした列を目立たせるような表示ができる。

GridViewのソートをコントロールを使用せずゴリゴリ書いてみる

http://levelups.seesaa.net/article/53416542.html

SqlDataSource を使わず GridView をソート (昇順・降順をAttributesに自前で保存しておいて切り替えを可能にする)

http://surferonwww.info/BlogEngine/post/2018/10/22/sort-gridview-without-using-sqldatasource.aspx

GridViewコントロールのヘッダにソート方向を表示する

http://www.atmarkit.co.jp/fdotnet/dotnettips/956aspgridvwhdrsort/aspgridvwhdrsort.html