在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();
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();