GridView的Sorting事件,每次e.sortDirection都是升序排序,参考了下别人的解决方案
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
Code
1
using System;
2
using System.Data;
3
using System.Configuration;
4
using System.Web;
5
using System.Web.Security;
6
using System.Web.UI;
7
using System.Web.UI.WebControls;
8
using System.Web.UI.WebControls.WebParts;
9
using System.Web.UI.HtmlControls;
10![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
11![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
12
public partial class _Default : System.Web.UI.Page
13![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
14
protected void Page_Load(object sender, EventArgs e)
15![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
16
if (!Page.IsPostBack)
17![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
18
this.BindData();
19
}
20
}
21
private DataTable GetData()
22![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
23
const string sql_select_workorder = "select WorkOrderID,ProductID,OrderQty,StockedQty,ScrappedQty,StartDate,EndDate,DueDate,ScrapReasonID,ModifiedDate from Production.WorkOrder";
24
return DBUtility.SqlHelper.ExecuteDataSet(DBUtility.SqlHelper.workOrderConnectionString, sql_select_workorder).Tables[0];
25
}
26
private void BindData()
27![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
28
this.GridView1.DataSource = this.GetData();
29
this.GridView1.DataBind();
30
}
31![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
32
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
33![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
34
string sortExpression=e.SortExpression;
35
DataView dv = new DataView(GetData());
36
// 根据视图状态来取排序方向
37
if (GridViewSortDirection == SortDirection.Ascending)
38![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
39
// 如果本次是升序,那么下次将是倒序
40
GridViewSortDirection = SortDirection.Descending;
41
42
dv.Sort = sortExpression + " desc";
43
}
44
else
45![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
46
// 如果本次是倒序,下次将是升序
47
GridViewSortDirection = SortDirection.Ascending;
48
dv.Sort = sortExpression;
49
}
50
this.GridView1.DataSource = dv;
51
this.GridView1.DataBind();
52
}
53
public SortDirection GridViewSortDirection
54![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
55
get
56![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
57
// 第一次点击排序时,视图状态为空,将其以倒序排列
58
if (ViewState["sortDirection"] == null)
59![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{ ViewState["sortDirection"] = SortDirection.Ascending; }
60
return (SortDirection)ViewState["sortDirection"];
61
}
62
set
63![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
64
ViewState["sortDirection"] = value;
65
}
66
}
67
}
68![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)