天天看點

Easyui+EF+MVC+WCF實作分頁

        高校平台中,背景使用EF架構,前端使用MVC結合Easyui,前端和背景的連結采用WCF傳遞資料,現在來說說是如何實作分頁的。

頁面:mvc+Easyui

        采用部分視圖的方式調用拼接表格的部分視圖,url放入頁面加載時調用的方法(controller+方法名),例如我的controller為Template,方法名為QueryTemplateData。

[html] view plain copy

  1. <div id="ContentAreas">  
  2.        @*先調用 對應的業務Controller中的表頭資料*@  
  3.        @{Html.RenderAction("ShowTemplateProperties", "Template");}  
  4.        @*加載 資料表格 datagrid 加參數——查詢業務資料的url  *@  
  5.        @{Html.RenderAction("DataGrid", "ControlsPartial", new { url = "/Template/QueryTemplateData"});}  
  6.    </div>  

        效果如下:

Easyui+EF+MVC+WCF實作分頁

Controller下的方法QueryTemplateData如下:

        pageSize指一頁顯示多少資料,pageIndex指第幾頁,out total,傳位址,傳回目前表格中所有資料條目數。

[csharp] view plain copy

  1. #region 查詢模闆主表資料——頁面首次加載  朱丹 2014年12月21日16:26:48  
  2.        /// <summary>  
  3.        /// 查詢模闆主表資料——頁面首次加載  
  4.        /// </summary>  
  5.        /// <returns>string</returns>  
  6.        public ActionResult QueryTemplateData()  
  7.        {  
  8.            //pageSize頁大小  
  9.            int pageSize = int.Parse(Request.QueryString["rows"].ToString().Trim());  
  10.            //pageIndex第幾頁  
  11.            int pageIndex = int.Parse(Request.QueryString["page"].ToString().Trim());  
  12.            int total = 0;  
  13.            List<ExamTemplateMainEntity> listData = new List<ExamTemplateMainEntity>();  
  14.            ExamTemplateMainEntity enTemplate = new ExamTemplateMainEntity();  
  15.            listData = userService.QueryTemplateMain(pageSize, pageIndex, out total);  
  16.            var data = new  
  17.            {  
  18.                total,  
  19.                rows = listData  
  20.            };  
  21.            return Json(data, JsonRequestBehavior.AllowGet);  
  22.        }  
  23.        #endregion  

         值得注意的要為

[csharp] view plain copy

  1. var data = new  
  2.    {  
  3.        total,  
  4.        rows = listData  
  5.    };  
  6.    return Json(data, JsonRequestBehavior.AllowGet);  

               此段代碼是調用vs中的Json方法,将資料轉換成如何Easyui表格分頁的Json串,Easyui分頁的Json串為:{"total":xx,"rows":[{...},{...}]}  total為總數  rows為資料數組。

         WCF和背景EF架構中的邏輯就不用我說了,隻是将controller中的pageSize、pageIndex、out Total參數傳後背景,擷取資料庫中的資料傳回到Controller就可以了,這樣就實作了分頁。效果如下:

Easyui+EF+MVC+WCF實作分頁

繼續閱讀