几个点,记一个例子
前台
1.<asp:GridView ID="gvResult" runat="server" AllowSorting="true" OnSorting="gvResult_Sorting"/>
2.<asp:TemplateField SortExpression="Sort"> --这个写法有多种
后台
3.设置不同的排序方式,并重新绑定数据到GridView
protected void gvResult_Sorting(object sender, GridViewSortEventArgs e)
{
string sortExpression = e.SortExpression.ToString();
string sortDirection = "ASC";
if (sortExpression == this.gvResult.Attributes["SortExpression"])
{
sortDirection = this.gvResult.Attributes["sortDirection"].ToString() == sortDirection ? "DESC" : "ASC";
}
this.gvResult.Attributes["SortExpression"] = sortExpression;
this.gvResult.Attributes["sortDirection"] = sortDirection;
#region BindGrid
BindGrid();
#endregion
}
private void BindGrid()
{
string sortExpression = this.gvResult.Attributes["SortExpression"];
string sortDirection = this.gvResult.Attributes["sortDirection"];
DataTable dt = mainForm.Query();
if ((!string.IsNullOrEmpty(sortExpression)) && (!string.IsNullOrEmpty(sortDirection)))
{
dt.DefaultView.Sort = string.Format("{0} {1}",sortExpression,sortDirection);
}
this.gvResult.DataSource = dt;
this.gvResult.DataBind();
}