在DataGrid中实现双向排序

DataGrid内置了排序功能,但要想实现双向排序(即点击奇数次时以从大到小排序,点击偶数次时从小到大排序),需要借助于ViewState,实现步骤如下:
1.首先将DataGrid的AllowSorting设为True;
2.设定每一列的排序表达式,一般都设为这一列所对应的数据表中的字段名称;
3.为DataGrid添加排序事件。
4.最后在排序事件中添加如下代码:
if(ViewState["sort"] == null)
   {
    ViewState["sort"] = " desc";
   }
   else
   {
    if(ViewState["sort"].ToString() == " desc")
    {
     ViewState["sort"] = " asc";//前面的空格不可少;
    }
    else
    {
     ViewState["sort"] = " desc";//前面的空格不可少;
    }
   }
//ds为DataGrid的数据源;
   DataView dv = ds.Tables[0].DefaultView;
   dv.Sort = e.SortExpression + ViewState["sort"].ToString();
   this.DataGrid1.DataSource = dv;
   this.DataGrid1.DataBind();

posted @ 2006-02-09 14:47  blueKnight  Views(289)  Comments(0Edit  收藏  举报