GridView点击表头,实现排序

步骤:

  1. 将GridView的 AllowSorting 属性 设置为 true;
  2. 将 欲排序的列的 SortExpression属性 设置为数据绑定列的字段值,如:ID
  3. 添加GridView的Sorting 事件,代码如下:

 protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)

{

       // 从事件参数获取排序数据列

    string sortExpression = e.SortExpression.ToString();

     // 假定为排序方向为“顺序”

     string sortDirection = "ASC";

    // “ASC”与事件参数获取到的排序方向进行比较,进行GridView排序方向参数的修改

     if (sortExpression == this.GridView1.Attributes["SortExpression"])

     {

       //获得下一次的排序状态

       sortDirection = (this.GridView1.Attributes["SortDirection"].ToString() == sortDirection ? "DESC" : "ASC");

        }

        // 重新设定GridView排序数据列及排序方向

        this.GridView1.Attributes["SortExpression"] = sortExpression;

        this.GridView1.Attributes["SortDirection"] = sortDirection;

         //重新绑定数据

        this.BindGridView(this.GridView1);

}

4. GridView数据绑定方法中,在指定数据源之前,添加以下代码:                 

//更改DataTable的默认视图,实现排序

          string sortExpression = this.GridView1.Attributes["SortExpression"];

          string sortDirection = this.GridView1.Attributes["SortDirection"];

 if ((!string.IsNullOrEmpty(sortExpression)) && (!string.IsNullOrEmpty(sortDirection)))

            {

      dt0.DefaultView.Sort = string.Format("{0} {1}", sortExpression, sortDirection);

            }

 

        //指定数据源,绑定数据

            GridView1.DataSource = dt0;

            GridView1.DataBind();

posted @ 2010-04-26 10:18  找不到服务器#  阅读(862)  评论(0编辑  收藏  举报