加载中…
个人资料
小瓶子
小瓶子
  • 博客等级:
  • 博客积分:0
  • 博客访问:99,004
  • 关注人气:13
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

GridView 多列排序

(2014-06-05 16:11:24)
标签:

it

分类: ASP.NET
采用GridView 结合 SqlDataSource提供数据源
先上代码:
  protected void OrdersList_Sorting(object sender, GridViewSortEventArgs e)
    {

            if (ViewState["SortDirection"] == null || ViewState["SortDirection"].ToString() == SortDirection.Ascending.ToString())
                e.SortDirection = SortDirection.Descending;
            else
                e.SortDirection = SortDirection.Ascending;
            ViewState["SortDirection"] = e.SortDirection.ToString();

            e.SortExpression =  "Name1 DESC, Name2 ";
    }
其实很简单,我感觉微软就没能实现多列排序, 不知道是不是因为使用SqlDataSource的原因还是怎样,算了,不再追究谁是谁非了。在实现排序的时候,实际上就是将SortDirection和SortExpression拼接成SQL查询里面的 Order by 后面的值,如果是单列排序,SortExpression + SorDirection,比如 SortExpression = name, SorDirection = Descending ,结果就是 Select .... from ... Order by name desc
这样就不难理解当我们需要实现多列排序的时候, 我就需要把前面的多列写成格式为 "name1 desc, name2 desc, name3",然后底层把SorDirection往后面加上去,所以最后一个千万别把排序方式写进去,要不然 会抛can not find column name3 desc, 那就悲剧了

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有