1using System;
  2using System.Collections;
  3using System.ComponentModel;
  4using System.Data;
  5using System.Drawing;
  6using System.Web;
  7using System.Web.SessionState;
  8using System.Web.UI;
  9using System.Web.UI.WebControls;
 10using System.Web.UI.HtmlControls;
 11using System.Data.SqlClient;
 12using System.Configuration;
 13namespace CommonFunction
 14{
 15 /// <summary>
 16 /// PagerState 的摘要说明。
 17 /// </summary>

 18 public class PagerState : System.Web.UI.Page
 19 {
 20  protected System.Web.UI.WebControls.DataGrid dgPagerState;
 21 
 22  private void Page_Load(object sender, System.EventArgs e)
 23  {
 24   if(!IsPostBack)
 25   {
 26    //设置排序表达式
 27    ViewState["SortOrder"= "LastName";
 28    //设置排序的升降序
 29    ViewState["OrderDire"= "ASC";
 30    //数据绑定
 31    DataGridDataBind();
 32   }

 33  }

 34
 35  private void DataGridDataBind()
 36  {
 37   //定义数据连接对象,其中数据库连接字符串是在Web.Config文件中定义的
 38   SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionSqlServer"].ToString());
 39   //创建数据适配器对象
 40   SqlDataAdapter da = new SqlDataAdapter("select LastName,FirstName,Title,TitleOfCourtesy,BirthDate,City from Employees",conn);
 41   //创建DataSet对象
 42   DataSet ds = new DataSet();
 43   try
 44   {
 45    //填充数据集
 46    da.Fill(ds,"testTable");
 47    //取得填充表格的默认视图
 48    DataView view = ds.Tables["testTable"].DefaultView;
 49    //设置排序关键字
 50    string sort = (string)ViewState["SortOrder"+ " " + (string)ViewState["OrderDire"];
 51    //设置排序表达式
 52    view.Sort =  sort;
 53    //数据邦定
 54    dgPagerState.DataSource = view;
 55    dgPagerState.DataBind();
 56   }

 57   catch(Exception error)
 58   {
 59    Response.Write(error.ToString());
 60   }
 
 61  }

 62
 63  Web 窗体设计器生成的代码
 85
 86  private void dgPagerState_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
 87  {
 88   //设置DataGrid的当前显示页的索引值为选择的页面索引值
 89   dgPagerState.CurrentPageIndex = e.NewPageIndex;
 90   DataGridDataBind();
 91  }

 92
 93  private void dgPagerState_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
 94  {
 95   //取得排序表达式
 96   string vortExp = e.SortExpression;
 97   //如果是当前排序表达式
 98   if(ViewState["SortOrder"].ToString() == vortExp)
 99   {
100    //如果原来是降序则改为升序,反之亦然
101    if((string)ViewState["OrderDire"== "Desc")
102     ViewState["OrderDire"= "ASC";
103    else
104     ViewState["OrderDire"= "Desc";
105   }

106   else
107   {
108    //重新设置排序关键字
109    ViewState["SortOrder"= e.SortExpression;
110   }

111   DataGridDataBind();
112  }

113 }

114}

115
116