要先设置GridView的AllowSortring=true,这样当点击列标题的时候才能激发GridView的Sorting事件进行排序
1using System; 2using System.Data; 3using System.Configuration; 4using System.Collections; 5using System.Web; 6using System.Web.Security; 7using System.Web.UI; 8using System.Web.UI.WebControls; 9using System.Web.UI.WebControls.WebParts; 10using System.Web.UI.HtmlControls; 11using System.Collections.Generic; 12 13public partial class GridViewSortingTest : System.Web.UI.Page 14{ 15 protected void Page_Load(object sender, EventArgs e) 16 { 17 if (!IsPostBack) 18 { 19 ClientInfoAccessObj accessor = new ClientInfoAccessObj(); 20 GridView1.DataSource = accessor.GetAllClients();//绑定所有客户信息 21 GridView1.DataBind(); 22 } 23 } 24 //按照客户姓名进行排序比较 25 public int CompareByClientName(ClientInfo Client1, ClientInfo Client2) 26 { 27 return Client1.ClientName.CompareTo(Client2.ClientName); 28 } 29 30 //按照邮编和地址进行排序比较 31 public int CompareByPostCodeAndAddressStr(ClientInfo client1, ClientInfo client2) 32 { 33 int ret = client1.PostCode.CompareTo(client2.PostCode); 34 if (ret != 0) 35 return ret; 36 else//如果邮编一样 37 { 38 return client1.AddressStr.CompareTo(client2.AddressStr); 39 } 40 } 41 //按照邮编进行排序比较 42 public int CompareByPostCode(ClientInfo client1, ClientInfo client2) 43 { 44 return client1.PostCode.CompareTo(client2.PostCode); 45 } 46 //正在排序的事件 47 protected void GridView1_Sorting(object sender, GridViewSortEventArgs e) 48 { 49 ClientInfoAccessObj accessor = new ClientInfoAccessObj(); 50 List<ClientInfo> clients = accessor.GetAllClients(); 51 switch (e.SortExpression) 52 { 53 case "ClientName": 54 clients.Sort(CompareByClientName);//参数是一个Comparison<T>类型的泛型委托的函数名 55 break; 56 case "MultiColumnSort": 57 clients.Sort(CompareByPostCodeAndAddressStr); 58 break; 59 case "PostCode": 60 clients.Sort(CompareByPostCode); 61 break; 62 default: 63 ClientScript.RegisterClientScriptBlock(this.GetType(), "InfoMsg", "alert('不支持对此字段进行排序');", true); 64 break; 65 } 66 GridView1.DataSource = clients;//绑定显示数据 67 GridView1.DataBind(); 68 } 69 protected void btnSortByName_Click(object sender, EventArgs e) 70 { 71 GridView1.Sort("ClientName", SortDirection.Ascending);//此事件执行完毕再执行Sorting事件 72 } 73 protected void btnSortByPostCodeAndAddress_Click(object sender, EventArgs e) 74 { 75 GridView1.Sort("MultiColumnSort", SortDirection.Ascending); 76 } 77} 78
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索gridview
, 排序
, client
, system
, girdview
, item背景girdview
, CompareTo
, 邮编
Accessor
,以便于您获取更多的相关知识。
时间: 2024-11-03 17:39:36