1. 程式人生 > >MVC Linq語法分頁

MVC Linq語法分頁

複製程式碼
 1 /// <summary>
 2 /// 查詢與分頁(如果是隻只執行分頁,只需PageSize和CurPage這兩個引數就夠了)
 3 /// </summary>
 4 /// <param name="strMoHu">模糊查詢條件</param>
 5 /// <param name="PageSize">頁大小</param>
 6 /// <param name="CurPage">頁碼</param>
 7 /// <param name="intMenDianID">門店ID</param>
 8 /// <returns></returns>
9 public ActionResult YuanGong_Load_MoHuChaXun(string strMoHu, int PageSize, int CurPage, int intMenDianID) 10 { 11 var dtYuanGongDanAn = (from tbYuanGong in myMdl.sys_YuanGong 12 join tbMenDian in myMdl.sys_MenDian on tbYuanGong.MenDianID equals tbMenDian.MenDianID
13 join tbYuanGongZhuangTai in myMdl.sys_ShuXingMingXi on tbYuanGong.YuanGongZhuangTaiID equals tbYuanGongZhuangTai.ShuXingMingXiID 14 where tbYuanGong.YouXiaoFou == true && tbYuanGong.MenDianID == intMenDianID && (tbYuanGong.YuanGongBianHao.Contains(strMoHu) || tbYuanGong.YuanGongXingMing.Contains(strMoHu) || tbYuanGong.XingBie.Contains(strMoHu) || tbMenDian.GongZuoZhanMingCheng.Contains(strMoHu) || tbYuanGongZhuangTai.ShuXingMingXiMingCheng.Contains(strMoHu))
15 orderby tbYuanGong.YuanGongID descending 16 select new 17 { 18 tbYuanGong.YuanGongID, 19 tbYuanGong.MenDianID, 20 tbYuanGong.YuanGongBianHao, 21 tbYuanGong.YuanGongXingMing, 22 tbYuanGong.XingBie, 23 tbYuanGong.YiDongShouJi, 24 tbYuanGong.JiaTingDianHua, 25 tbYuanGong.DiXin, 26 tbMenDian.GongZuoZhanMingCheng, 27 tbYuanGongZhuangTai.ShuXingMingXiID, 28 tbYuanGongZhuangTai.ShuXingMingXiMingCheng, 29 tbYuanGong.GengXinShiJian, 30 tbYuanGong.YouXiaoFou 31 }).AsEnumerable().Select((n, index) => new 32 { 33 YuanGongID = n.YuanGongID, 34 MenDianID = n.MenDianID, 35 YuanGongBianMa = n.YuanGongBianHao != null ? n.YuanGongBianHao.Trim() : "", 36 YuanGongXingMing = n.YuanGongXingMing != null ? n.YuanGongXingMing.Trim() : "", 37 XingBie = n.XingBie != null ? n.XingBie.Trim() : "", 38 YiDongShouJi = n.YiDongShouJi != null ? n.YiDongShouJi.Trim() : "", 39 JiaTingDianHua = n.JiaTingDianHua != null ? n.JiaTingDianHua.Trim() : "", 40 GongZi = n.DiXin != null ? n.DiXin.Trim() : "", 41 GongZuoDianPu = n.GongZuoZhanMingCheng != null ? n.GongZuoZhanMingCheng.Trim() : "", 42 YuanGongZhuangTaiID = n.ShuXingMingXiID, 43 YuanGongZhuangTai = n.ShuXingMingXiMingCheng != null ? n.ShuXingMingXiMingCheng.Trim() : "", 44 GengXingShiJian = n.GengXinShiJian != null ? n.GengXinShiJian.Value.ToString("yyyy-MM-dd HH:mm:ss") : null, 45 YouXiaoFou = n.YouXiaoFou, 46 order = index + 1 47 }); 48 int ZongJiLuShu = dtYuanGongDanAn.Count(); 49 if (CurPage > 0)//在分頁前加條件判斷 50 { //Take是從序列的開頭返回指定數量的連續元素,也就是說()裡面放的數是多少就返回多少條資料 51 //Skip是跳過序列中指定的元素,返回剩餘的,也就是說()裡面放的數是多少,它就跳過多少 52 dtYuanGongDanAn = dtYuanGongDanAn.Take(PageSize * CurPage).Skip(PageSize * (CurPage - 1));//進行分頁 53 } 54 var jsonMap = new Dictionary<string, object>();//例項化容器 55 jsonMap.Add("total", ZongJiLuShu);//返回一共存在多少行資料 56 jsonMap.Add("rows", dtYuanGongDanAn);//返回分頁資料 57 return Json(jsonMap, JsonRequestBehavior.AllowGet); 58 }
複製程式碼