技术开发 频道

ASP.NET MVC中对数据进行排序的方法

  步骤1:创建指定的视图模型

  在上一篇文章的演示中,我们使用了产品的集合作为其实体模型(以NorthwindDataContext去命名)。这对简单的网格来说是可以的,但对于要排序的数据表格,需要知道一点的不仅仅是产品的集合,还要视图层方面知道哪些列的数据需要进行排序,是按升序或降序排序,如果用户要点的列已经按某一个顺序已排序的话,则此时会按原来的顺序排序(假设某列已经是按升序排列,用户点标题一次,则倒过来按降序排列,再点一次,又按升序,如此类推)。

  为此,我们添加一个新类,这些类被称为特定视图服务的模型,打开上一篇文章中已经实现的应用程序,在Models文件夹下添加一个名为ProductGridModel.cs 的文件,代码如下:

namespace Web.Models
{
  
public class ProductGridModel
   {
      
// Data properties
      public IEnumerable<Product> Products { get; set; }
      

      
// Sorting-related properties
      public string SortBy { get; set; }
      
public bool SortAscending { get; set; }
      
public string SortExpression
      {
        
get
         {
            
return this.SortAscending ? this.SortBy + " asc" : this.SortBy + " desc";
         }
      }
   }
}

  该ProductGridModel类定义了一个产品属性,它是一个集合类的属性,用来显示产品集合,同时也有三种排序相关的属性:

  SortBy

  在数据库中用来排序的数据列名称

  SortAscending

  一个布尔值,指示是否用升序排序数据

  SortExpression

  只读属性,返回一个排序字符串,其构造为SortBy和SortAscending值的组合。

  例如,如果SortBy分为“UnitePrice“和SortAscending是true,SortExpression的值为

  “ UnitedPrice asc“。

  如果SortBy设置为“Discontinued “和SortAscending是false,则SortExpression返回“Discontinued desc “。

0
相关文章