如题

解决方案 »

  1.   

    private void Page_Load(object sender, System.EventArgs e)
    {
    if(!IsPostBack)
    {
    //设置排序表达式
    ViewState["SortOrder"] = "LastName";
    //设置排序的升降序
    ViewState["OrderDire"] = "ASC";
    //数据绑定
    DataGridDataBind();
    }
    } private void DataGridDataBind()
    {
    //定义数据连接对象,其中数据库连接字符串是在Web.Config文件中定义的
    SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionSqlServer"].ToString());
    //创建数据适配器对象
    SqlDataAdapter da = new SqlDataAdapter("select LastName,FirstName,Title,TitleOfCourtesy,BirthDate,City from Employees",conn);
    //创建DataSet对象
    DataSet ds = new DataSet();
    try
    {
    //填充数据集
    da.Fill(ds,"testTable");
    //取得填充表格的默认视图
    DataView view = ds.Tables["testTable"].DefaultView;
    //设置排序关键字
    string sort = (string)ViewState["SortOrder"] + " " + (string)ViewState["OrderDire"];
    //设置排序表达式
    view.Sort =  sort;
    //数据邦定
    dgPagerState.DataSource = view;
    dgPagerState.DataBind();
    }
    catch(Exception error)
    {
    Response.Write(error.ToString());
    }
    }private void dgPagerState_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
    {
    //取得排序表达式
    string vortExp = e.SortExpression;
    //如果是当前排序表达式
    if(ViewState["SortOrder"].ToString() == vortExp)
    {
    //如果原来是降序则改为升序,反之亦然
    if((string)ViewState["OrderDire"] == "Desc")
    ViewState["OrderDire"] = "ASC";
    else
    ViewState["OrderDire"] = "Desc";
    }
    else
    {
    //重新设置排序关键字
    ViewState["SortOrder"] = e.SortExpression;
    }
    DataGridDataBind();
    }
    }
      

  2.   

    客户端排序
    http://singlepine.cnblogs.com/articles/323386.html
    服务器端排序
    http://singlepine.cnblogs.com/articles/266538.html
      

  3.   

    http://dev.csdn.net/article/55/55786.shtm
      

  4.   

    private void DataGrid1_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
    {if(ViewState["oreder"]==null)
    {
    ViewSate["order"]="ASC"
    }
    else
    {
    if(ViewState["order"].ToString()="ASC")
    {
    ViewState["order"]="DESC";
    }
    else
    {
    ViewState["order"]="ASC";
    }
    }
     
    //数据绑定
    ds.Table[""].DefaultView.Sort=e.SortExpression+""+ViewState["order"].ToString();
    dg.datasoure=}当然了,在DG属性里设定允许排序,把要点击后排序的字段指定排序表达式,就可以实现了,点一下升序,再点一下就降序