要自己撰寫 GridView的排序功能並不難,
只要瞭解「SortDirection」與「SortExpression」這兩個參數的用法,
就可以搞定囉!
有一位讀者朋友來信詢問這個問題,但很有趣的是:他用公司的信箱來發問。
偏偏有些公司防範很嚴密,對於坊間的免費信箱,阻擋得很嚴格。
我無法回信給他,只好在此公開。.......希望他「有緣」能見到這篇文章
這個功能也可以當作書本的「補充習題」
應該放在 ASP.NET專題實務 / 文魁出版的 第十章裡面,比較適當。
因為這一章,所有功能我都親自動手寫程式去處裡。
........................................................................................................................................
GridView的排序功能也不難寫,
但在撰寫這個功能之前,有一些基本功要先練習一下。
在練習的過程中,您就會知道該怎麼去寫?
首先,我們在畫面上,使用 Gridview + SqlDataSource。
然後啟用 GridView的「AutoSorting」屬性
HTML碼如下:
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="id" DataSourceID="SqlDataSource1" PageSize="5"> <Columns> <asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" ReadOnly="True" SortExpression="id" /> <asp:BoundField DataField="test_time" HeaderText="test_time" SortExpression="test_time" /> <asp:BoundField DataField="title" HeaderText="title" SortExpression="title" /> <asp:BoundField DataField="author" HeaderText="author" SortExpression="author" /> </Columns> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:testConnectionString %>" SelectCommand="SELECT [id], [test_time], [title], [author] FROM [test]"> </asp:SqlDataSource>
接下來就要撰寫後置程式碼:
為了讓初學者瞭解:
事件裡面 e參數的「SortDirection」與「SortExpression」這兩個參數的用法,
我故意把他們的狀態值,秀在畫面上。
這樣一邊運作,一邊就知道參數的內容為何

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

是不是很簡單呢?
試著自己動手寫程式,這樣做才會更瞭解 GridView或是其他控制項背後的運作方式,
對於提昇自己能力,相當有幫助!!!!!
2010/10/18補充:根據上述的技巧,提供一個補充習題
[習題]搜尋引擎 -- 自己手寫 GridView分頁、排序兩種功能。
===========================================================================
目前的書(ASP.NET專題實務 /文魁出版)只列出自己動手寫程式 100%控制 GridView的範例,
有讀者希望看見 ListView、FormView、DetailsView,也都可以自己動手打造。
到了這篇文章,算是把這四大天王的範例,都提供出來了。
ListView ----
FormView ----
GridView --
DetailsView --
===========================================================================
.....................................................................................................................................................
關於 GridView,我的網站上有不少補充文章,有興趣的話可以看看:
[習題] "選取" Gridview的某一列 & 那一列對應資料表的P.K.值
[習題]兩個SqlDataSource,共用一個 GridView
[習題]GridView樣版內部,改用CheckBox/Radio/DropDownList(單/複選)控制項,取代TextBox
GridView密技#3---GridView合併儲存格後,隔行變底色(AlternatingRowStyle)
我將思想傳授他人, 他人之所得,亦無損於我之所有;
猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson
線上課程教學,遠距教學 (Web Form 約 51hr) https://dotblogs.com.tw/mis2000lab/2016/02/01/aspnet_online_learning_distance_education_VS2015
線上課程教學,遠距教學 (ASP.NET MVC 約 140hr) https://dotblogs.com.tw/mis2000lab/2018/08/14/ASPnet_MVC_Online_Learning_MIS2000Lab
寫信給我,不要私訊 -- mis2000lab (at) yahoo.com.tw 或 school (at) mis2000lab.net
(1) 第一天 ASP.NET MVC5 完整影片(5.5小時 / .NET 4.x版)免費試聽。影片 https://youtu.be/9spaHik87-A
(2) 第一天 ASP.NET Core MVC 完整影片(3小時 / .NET Core 6.0~8.0)免費試聽。影片 https://youtu.be/TSmwpT-Bx4I
[學員感言] mis2000lab課程評價 - ASP.NET MVC , WebForm 。 https://mis2000lab.medium.com/%E5%AD%B8%E5%93%A1%E6%84%9F%E8%A8%80-mis2000lab%E8%AA%B2%E7%A8%8B%E8%A9%95%E5%83%B9-asp-net-mvc-webform-77903ce9680b
ASP.NET遠距教學、線上課程(Web Form + MVC)。 第一天課程, "完整" 試聽。
......... facebook社團 https://www.facebook.com/mis2000lab ......................
......... YouTube (ASP.NET) 線上教學影片 https://www.youtube.com/channel/UC6IPPf6tvsNG8zX3u1LddvA/
Blog文章 "附的範例" 無法下載,請看 https://dotblogs.com.tw/mis2000lab/2016/03/14/2008_2015_mis2000lab_sample_download
請看我們的「售後服務」範圍(嚴格認定)。
......................................................................................................................................................
ASP.NET MVC => .NET Core MVC 線上教學 ...... 第一天課程 完整內容 "免費"讓您評估 / 試聽

[遠距教學、教學影片] ASP.NET (Web Form) 課程 上線了!MIS2000Lab.主講 事先錄好的影片,並非上課側錄! 觀看時,有如「一對一」面對面講課。
