麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 擴(kuò)展 > MVC > 正文

MVC+Bootstrap+Drapper使用PagedList.Mvc支持多查詢條件分頁

2024-09-06 20:44:40
字體:
供稿:網(wǎng)友

前幾天做一個小小小項目,使用了MVC+Bootstrap,以前做分頁都是異步加載Mvc部分視圖的方式,因為這個是小項目,就隨便一點(diǎn)。一般的列表頁面,少不了有查詢條件,下面分享下Drapper+PagedList.Mvc支持多查詢條件分頁的使用經(jīng)驗。

在MVC中我們一般習(xí)慣使用強(qiáng)類型Model,通過分析Orders的展示頁面,來構(gòu)建這個Model。

1.查詢參數(shù)的Model

public class OrderQueryParamModel  {    /// <summary>    /// 訂單編號    /// </summary>    public string OrderNo { get; set; }    /// <summary>    /// 客戶名稱    /// </summary>    public string CustomerName { get; set; }  }

2.Orders分頁數(shù)據(jù)Model

PagedList提供了一個StaticPagedList<T>泛型類來封裝數(shù)據(jù)。(看看StaticPagedList的源代碼,使用非常方便,把T類型的數(shù)據(jù)subset,pageNumber,pageSize,totalCount初始化進(jìn)去就可以了。

public StaticPagedList(IEnumerable<T> subset, IPagedList metaData) : this(subset, metaData.PageNumber, metaData.PageSize, metaData.TotalItemCount)    {    }

3.Orders展示頁面整體Model

public class OrderViewModel  {    public OrderQueryParamModel QueryModel { get; set; }    public PagedList.StaticPagedList<OrderModel> OrderList { get; set; }   }

OK,接下來看看在Controller中如何給來OrderViewModel填充數(shù)據(jù)吧

 public ActionResult List(OrderViewModel orderViewModel, int page = 1)    {      var pagesize = 10;      var count = 0;      var orders = _orderService.GetOrders(page, pagesize, model.QueryModel, ref count);      orderViewModel.OrderList = new StaticPagedList<OrderModel>(orders, page, pagesize, count);      return View(orderViewModel);    }

Controller中代碼很簡單,接收POST過來的兩個參數(shù),orderViewModel:包含查詢參數(shù)Model,page:PagedList定義的當(dāng)前頁。

順便看看GetOrders()這個方法吧,為了省事懶得寫存儲過程,直接用了Drapper的QueryMultiple,感覺很強(qiáng)大啊。

 public List<OrderModel> GetOrders(int pageindex, int pagesize, OrderQueryParamModel query, ref int count)    {      var orders = new List<OrderModel>();      var whereStr = string.Empty;      if (query != null)      {        if (!string.IsNullOrEmpty(query.CustomerName))        {          whereStr += string.Format(" and CustomerName like '%{0}%' ", query.CustomerName);        }      }      var cmd = string.Format(@"SELECT COUNT(*) FROM [Orders] WHERE 1=1 {0};            SELECT * FROM (            SELECT *, row_number() OVER (ORDER BY orderId DESC ) AS [row]                  FROM [Orders] WHERE 1=1 {0} )t            WHERE t.row >@indexMin AND t.row<=@indexMax", whereStr);      using (IDbConnection conn = BaseDBHelper.GetConn())      {        using (var multi = conn.QueryMultiple(cmd,           new { indexMin = (pageindex - 1) * pagesize, indexMax = pageindex * pagesize }))        {          count = multi.Read<int>().SingleOrDefault();          orders = multi.Read<OrderModel>().ToList();        }      }      return orders;    }            
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 日本精品久久久久久草草 | 久久久资源网 | 国产1区在线观看 | 午夜视| 国产精品看片 | 国产精品jk白丝蜜臀av软件 | 欧美一级黄色片免费观看 | 成人精品一区二区 | 成人富二代短视频 | 一级毛片看 | 欧美一级美国一级 | 国产精品区在线12p 午夜视频色 | 国产 日韩 一区 | 国产日韩三区 | 末成年女av片一区二区 | 看毛片的网址 | av在线播放亚洲 | 在线看免费观看av | 久久人添人人爽人人爽人人片av | 成人免费毛片在线观看 | 免费一级毛片免费播放 | 国产精品99久久久久久大便 | 国产午夜亚洲精品 | 狠狠操夜夜爱 | 欧美大屁股精品毛片视频 | 欧美无极品 | 毛片av网 | 国产日本在线播放 | 国产精品午夜未成人免费观看 | 久久99精品久久久久久园产越南 | 日韩欧美高清片 | xxxxxx性| 国产流白浆高潮在线观看 | 亚洲国产精品久久久 | 国产精品91在线 | 国产毛片在线 | 天天都色 | 久久精品一区二区三区四区五区 | 在线成人一区二区 | 久久久久久久久亚洲精品 | 黄色网址在线免费 |