天天看點

關于GridView點選列頭排序

關于GridView列頭點選排序

做ASP.NET Web項目開發,經常會和GridView打交道,免不了會根據需求要有列頭點選排序的功能,在網上看了很多資料都沒有把執行個體講全,下面以linq原生文法完成點選列頭排序執行個體:

1)在頁面源碼中設定AllowSorting屬性為True并增加OnSorting事件,以及在綁定列中增加對應的SortExpression屬性,如下圖:

關于GridView點選列頭排序

2)對應頁面的代碼中添加相關函數及排序的邏輯函數;

關于GridView點選列頭排序

注意,如上圖,在Page_Load事件中,需要增加一個ViewState["sort"], 用來跟蹤和儲存控件的狀态資訊,事實上就是根據這個ViewState["sort"]來完成倒序和順序的排列過程;

關于GridView點選列頭排序

這裡的gvHR_Sorting調用了一個方法,而這個方法的傳回值又被指派給ViewState["sort"]

關于GridView點選列頭排序

方法很簡單,就是讀取ViewState["sort"]的狀态值,如果為順序,則排序,并傳回一個倒序的值,反之亦然。

3)頁面效果驗證,開始按照資料庫的預設順序讀取值,然後點選列頭的"年齡",則實作排序:

關于GridView點選列頭排序

點選前,如上圖所示,年齡未按照順序或者倒序排列,這是資料庫存貯順序;

關于GridView點選列頭排序

點選"年齡"後,資料排序為倒序,即年齡從大到小,這正好符合程式邏輯的設計。