我们在gridview中要对字段进行排序并不是一件容易的事情。
先将 AllowSorting="True"
然后将要排度的字段加上如 SortExpression="TotalMoney"
<asp:BoundField DataField="TotalMoney" HeaderText="总金额" SortExpression="TotalMoney" ItemStyle-HorizontalAlign="right" />
再添加一个 Sorting
//排序
protected
void GridView1_Sorting(object sender, GridViewSortEventArgs e) 
{
string SortAll = e.SortDirection.ToString().Replace("ending", "");
if (Session["SortAll"] != null && Session["SortAll"].ToString() == "asc") 
{
SortAll = "desc";
}
Session["SortAll"] = SortAll.Trim().ToLower();
//Response.Write(SortAll);
string SortTemp = e.SortExpression + " " + SortAll;
Session["SortText"] = SortTemp;
order_date(SortTemp);
GridView1.DataBind();
//Response.Write(e.SortDirection.ToString());
}
//排序
protected
void order_date(string SortText) 
{
DataSet ds = ReadDate();
GridView1.PageSize = 20;
DataView dataView = new DataView(ds.Tables[0]);
dataView.Sort = SortText;
GridView1.DataSource = dataView;
}这里我们用 session 来保存排度的条件 因为每一次点击 e.SortDirection 永远都是 ASC 。另外要将排度的条件用Session保存是因为如果Gridview有分页的时候当点到第二页的时候排序就无效了。