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;
 12
 13namespace changedpage
 14{
 15    /// <summary>
 16    /// 写得不好,希望大家给我批评,指正,此致敬礼
 17    /// </summary>

 18    public class dg_changed_sort: System.Web.UI.Page
 19    {
 20        protected System.Web.UI.WebControls.DataGrid myDataGrid;
 21        protected System.Web.UI.WebControls.Label SqlStatement;
 22        protected SqlConnection myconnection = new SqlConnection();
 23        protected string strsql = "SELECT CustomerID, CompanyName , ContactName , ContactTitle , Phone , Fax FROM Customers ";
 24        protected DataSet mydataset = new DataSet();
 25    
 26        private void Page_Load(object sender, System.EventArgs e)
 27        {
 28            // 在此处放置用户代码以初始化页面
 29    
 30            if(!IsPostBack)
 31            {
 32                binddata("CustomerID","");
 33            }

 34        }

 35        private void binddata(string sqlstatement1,string sqlstatement2)
 36        {
 37            string strconn = "server = localhost;user id =sa;password =;database =Northwind";
 38
 39            myconnection.ConnectionString = strconn;
 40            SqlDataAdapter mycommand = new SqlDataAdapter(strsql,myconnection);
 41            mycommand.Fill(mydataset,"customers");
 42            string allsqlstatement = sqlstatement1+sqlstatement2;
 43            if(!IsPostBack)
 44            {
 45                
 46                allsqlstatement=allsqlstatement.Trim();
 47            }

 48            else
 49            {
 50                
 51                allsqlstatement="";
 52                allsqlstatement=allsqlstatement+sqlstatement2;
 53            }

 54                
 55            myDataGrid.DataSource = mydataset.Tables["customers"].DefaultView.Sort=allsqlstatement;
 56            myDataGrid.DataSource = mydataset.Tables["customers"].DefaultView;
 57            myDataGrid.DataBind();
 58
 59        }

 60
 61        #region Web 窗体设计器生成的代码
 62        override protected void OnInit(EventArgs e)
 63        {
 64            //
 65            // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
 66            //
 67            InitializeComponent();
 68            base.OnInit(e);
 69        }

 70        
 71        /// <summary>
 72        /// 设计器支持所需的方法 - 不要使用代码编辑器修改
 73        /// 此方法的内容。
 74        /// </summary>

 75        private void InitializeComponent()
 76        {    
 77            this.myDataGrid.PageIndexChanged += new 
 78
 79                System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.myDataGrid_PageIndexChanged);
 80            this.myDataGrid.SortCommand += new 
 81
 82                System.Web.UI.WebControls.DataGridSortCommandEventHandler(this.myDataGrid_SortCommand);
 83            this.Load += new System.EventHandler(this.Page_Load);
 84
 85        }

 86        #endregion

 87
 88        private void myDataGrid_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
 89
 90            
 91        
                           //SqlStatement是一个属性为隐蔵的label
 92            SqlStatement.Text=e.SortExpression.ToString();
 93            string    sqlstatement2 = SqlStatement.Text;
 94            binddata("",sqlstatement2);
 95        }

 96        private void myDataGrid_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)  
 97        {  
 98            myDataGrid.CurrentPageIndex=e.NewPageIndex;  
 99            string    sqlstatement3 = SqlStatement.Text;
100            binddata("",sqlstatement3);  
101 
102        }
 
103
104
105
106    }

107}