EasyUI Forum

General Category => EasyUI for jQuery => Topic started by: Vilisag on December 17, 2014, 09:16:06 AM



Title: Paging not work in easyui datagrid
Post by: Vilisag on December 17, 2014, 09:16:06 AM
Hi all,
  I use easyui datagrid in my project, I load data successfully but paging not work.
Please help me, thank for help!!


Title: Re: Paging not work in easyui datagrid
Post by: stworthy on December 18, 2014, 01:24:32 AM
The json data returned from server should have 'total' and 'rows' properties. It looks like this:
Code:
{"total":xxx,"rows":[...]}


Title: Re: Paging not work in easyui datagrid
Post by: Vilisag on December 18, 2014, 06:37:32 AM
It not work!!!
Server -side code:
Code:
public JsonResult DanhSachTinh(int page = 1, int rows = 10)
        {
            var tinh = db.Tinhs.ToList() as IEnumerable<Tinh>;
            var pageIndex = Convert.ToInt32(page) - 1;
            var pageSize = rows;
            var totalRecords = tinh.Count();
            var totalPages = (int)Math.Ceiling((float)totalRecords / (float)pageSize);
            tinh = tinh.Skip(pageIndex * pageSize).Take(pageSize);
            var jsonData = new
            {
                total = totalPages,
                rows = tinh.Select(e => new
                {
                    tinhId = e.tinhId,
                    maTinh = e.maTinh,
                    tenTinh = e.tenTinh
                }).ToArray()
            };
            //return new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(db.NhanViens.ToList());
            return Json(jsonData, JsonRequestBehavior.AllowGet);
        }


Title: Re: Paging not work in easyui datagrid
Post by: stworthy on December 18, 2014, 07:00:16 AM
Please use the browser's network tool to see what returned from your server. The datagrid pagination tutorial is available from http://www.jeasyui.com/tutorial/datagrid/datagrid2.php


Title: Re: Paging not work in easyui datagrid
Post by: Vilisag on December 18, 2014, 09:57:43 AM
Thanks stworthy, i had seen issue.
My code is redundant:
 
Code:
var totalPages = (int)Math.Ceiling((float)totalRecords / (float)pageSize);

And code true:
Code:
public JsonResult DanhSachTinh(int page = 1, int rows = 10)
        {
            var tinh = db.Tinhs.ToList() as IEnumerable<Tinh>;
            var pageIndex = page;
            var pageSize = rows;
            var totalRecords = tinh.Count();
            tinh = tinh.Skip(pageIndex * pageSize).Take(pageSize);
            var jsonData = new
            {
                total = totalRecords,
                rows = tinh.Select(e => new
                {
                    tinhId = e.tinhId,
                    maTinh = e.maTinh,
                    tenTinh = e.tenTinh
                }).ToArray()
            };
            //return new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(db.NhanViens.ToList());
            return Json(jsonData, JsonRequestBehavior.AllowGet);
        }