using System; using System.Data; using System.Configuration; 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; using System.Data.SqlClient; public partial class _Default : System.Web.UI.Page { SqlConnection sqlcon; SqlCommand sqlcom; string strCon = "Data Source=(local);Database=AngelGarden;Uid=Angel;Pwd=Angel2008"; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { ViewState["SortOrder"] = "Name"; ViewState["OrderDire"] = "ASC"; BindGridView(); } } //设置数据源,绑定表结构 public void BindGridView() { string sqlstr = "SELECT * FROM AngelHome"; sqlcon = new SqlConnection(strCon); SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon); DataSet myds = new DataSet(); sqlcon.Open(); myda.Fill(myds, "AngelHome"); DataView View = myds.Tables["AngelHome"].DefaultView; string sort = (string)ViewState["SortOrder"] + " " + (string)ViewState["OrderDire"]; View.Sort = sort; GridViewAngel.DataSource = View; GridViewAngel.DataKeyNames = new string[] { "ID" };//主键(定义主键,行操作事件使用) GridViewAngel.DataBind(); sqlcon.Close(); } //排序事件处理例程 protected void GridViewAngel_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;//安装点击的字段排序 } BindGridView(); } } 后台代码: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="AngelHome.aspx.cs" Inherits="_Default" %> <head runat="server"> <title>GridView绝技 AngelGarden http://hi.baidu.com/diudiu_mei</title> <mce:style type="text/css"><!-- @import url("AngelStyle.css"); --></mce:style><style type="text/css" mce_bogus="1"> @import url("AngelStyle.css");</style> </head> <body> <form id="form1" runat="server"> <asp:GridView ID="GridViewAngel" runat="server" Width="500px" CssClass="GView_BodyCSS" PageSize="5" AutoGenerateColumns="False" …… OnSorting="GridViewAngel_Sorting" AllowSorting="True"> <HeaderStyle CssClass="GView_HeaderCSS"/> <Columns> <asp:ButtonField DataTextField="Name" HeaderText="名字" Text="按钮" SortExpression="Name" /> <asp:BoundField DataField="Gender" HeaderText="性别" SortExpression="Gender" /> <asp:BoundField DataField="Tel" HeaderText="联系方式" SortExpression="Tel" /> <asp:BoundField DataField="Address" HeaderText="家庭地址" SortExpression="Address" /> …… </Columns> <RowStyle CssClass="GView_ItemCSS" /> <AlternatingRowStyle CssClass="GView_AlternatingItemCSS" /> …… 实现排序GridView的设置,需要允许排序AllowSorting,并且设置各个字段的SortExpression,订阅排序过程:GridViewAngel_Sorting