datagrid在MVC中的运用09-实现排序

本文体验datagrid的排序。

□ 思路

当点击datagrid的标题,视图传递给Controller的Form Data类似这样:page=1&rows=10&sort=CustomerID&order=asc。为了应对变化,把关于分页的封装成基类,其他关于排序或搜索的封装成继承该基类的子类。再把这些子类对象实例传递给服务层方法。

datagrid参数

  相关Model

展开

  服务层根据CustomerParam返回Customer集合,并返回一个输出总记录数

展开

在进行分类的时候,用到了针对 IEnumerable<Customer>扩展方法OrderByWithDirection,如下:

using System.Linq;
 
namespace DataGridInMVC2.Helpers
{
    public static class SortExtension
    {
 
        public static IOrderedEnumerable<TSource> OrderByWithDirection<TSource, TKey>(
            this IEnumerable<TSource> source,
            System.Func<TSource, TKey> keySelector,
            bool descending)
        {
            return descending ? source.OrderByDescending(keySelector) : source.OrderBy(keySelector);
        }
    }
}
 

 

  CustomerController

展开

 

  Customer/Index 视图

展开

最终效果:
sorting
posted @ 2014-03-02 15:28  Darren Ji  阅读(557)  评论(0编辑  收藏  举报

我的公众号:新语新世界,欢迎关注。