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

本文体验datagrid的排序。

□ 思路

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

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

  相关Model

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

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

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

在进行分类的时候,用到了针对 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

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

 

  Customer/Index 视图

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

最终效果:
datagrid在MVC中的运用09-实现排序

datagrid在MVC中的运用09-实现排序,布布扣,bubuko.com

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

上一篇:Javascript和ECMAScript二三事


下一篇:.NET性能优化方面的总结