asp.net GridView排序简单实现 |
前台: 代码 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="GridViewSort.aspx.cs" Inherits="GridViewSort" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>GridView排序简单实现</title> </head> <body> <form id="form1" runat="server"> <div> <asp:GridView ID="gdvSort" runat="server" OnSorting="gdvSort_Sorting"> </asp:GridView> </div> </form> </body> </html> 后台: 代码 复制代码 代码如下: using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class GridViewSort : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { ViewState["SortOrder"] = "PID"; ViewState["OrderDire"] = "Desc"; Bind(); } } private void Bind() { gdvSort.AllowSorting = true; DataView dv = getDt().DefaultView; dv.Sort = (string)ViewState["SortOrder"] + " " + (string)ViewState["OrderDire"]; gdvSort.DataSource = dv; gdvSort.DataBind(); } /// <summary> /// 连数据库麻烦,直接构造一个DataTable /// </summary> /// <returns></returns> private DataTable getDt() { DataTable dt = new DataTable(); dt.Columns.Add("PID", typeof(System.Int32)); dt.Columns.Add("UserName", typeof(System.String)); for (int i = 0; i < 10; i++) { DataRow dr = dt.NewRow(); dr["PID"] = i; dr["UserName"] = "姓名" + i; dt.Rows.Add(dr); } return dt; } protected void gdvSort_Sorting(object sender, GridViewSortEventArgs e) { string sPage = e.SortExpression; if (ViewState["SortOrder"].ToString() == sPage) { if (ViewState["OrderDire"].ToString() == "Desc") { ViewState["OrderDire"] = "Asc"; } else { ViewState["OrderDire"] = "Desc"; } } else ViewState["SortOrder"] = e.SortExpression; Bind(); } } |