1. 程式人生 > >List 資料轉為easyui-datagrid json資料格式

List 資料轉為easyui-datagrid json資料格式

<!DOCTYPE html>
<html>
<head>
    <title>jQuery Easy UI</title>
    <meta charset="UTF-8" />
    <script src="~/Scripts/jquery.min.js"></script>
    <script src="~/Scripts/jquery.easyui.min.js"></script>
    <link href="~/Content/themes/easyuithemes/default/easyui.css" rel="stylesheet" />
    <link href="~/Content/themes/easyuithemes/icon.css" rel="stylesheet" />
    <script type="text/javascript">
        $(function () {
            $("#box").datagrid({
                width: 500,
                url: '@Url.Content("~/List/GetUserInfo")',
                title: '使用者列表',
                iconCls: 'icon-search',
                fitColumns: true,//自動補全  
                columns: [[
                    {
                        field: 'Account',
                        title: '帳號',
                    },
                    {
                        field: 'Email',
                        title: '郵件',
                    },
                    {
                        field: 'RegDateTime',
                        title: '註冊時間',
                    },
                ]],
                pagination: true,
                pageSize: 5,
                pageList: [5, 10, 15],
                pageNumber: 1,
            });

        });

    </script>
</head>
<body style="text-align: center;">
    <h2 id="text">EasyUI_DataGrid1</h2>
    <div style="margin-left: 435px;">
        <table id="box"></table>
    </div>
</body>
</html>

前臺程式碼如上     專案採用的是.net mvc框架。

後臺控制器程式碼:

        public ActionResult DataGrid()
        {
            return View();
        }

        public ActionResult GetUserInfo()
        {
            var pageIndex = int.Parse(Request.Params["page"]);  //當前頁  
            var pageSize = int.Parse(Request.Params["rows"]);  //頁面行數  
            JsonResult js = new JsonResult();
            List<GridInfo> ginfo = new List<GridInfo>();
            for (int i = 1; i < 12; i++)
            {
                ginfo.Add(
               new GridInfo()
               {
                   Account = i.ToString(),
                   Email = i + "@qq.com",
                   RegDateTime = DateTime.Now.AddDays(i).ToShortDateString(),
               }
            );
            }
           List<GridInfo> listResut = GetResult(ginfo, pageSize, pageIndex);
           var data = new
          {
               total = ginfo.Count,
               rows = listResut
           }
            return Json(data);
        }

        private List<GridInfo> GetResult(List<GridInfo> ginfo, int pageSize, int pageIndex)
        {
            List<GridInfo> sginfo = new List<GridInfo>();
            sginfo = ginfo.Skip(pageSize * (pageIndex - 1)).Take(pageSize).ToList();
            return sginfo;
        }
    }

資料採用的是後臺填充,並不是來自資料庫,如果想用資料庫,將ginfo物件賦值為資料庫資料集即可。當然還需要更改實體類 GridInfo。本例項主要是如何應用easyui的資料表格,記錄下來主要是解決分頁時datagrid所需要的json資料格式。關鍵程式碼:
   List<GridInfo> lstResut = GetResult(ginfo, pageSize, pageIndex);
   var data = new
   {
       total = ginfo.Count,
       rows = lstResut
   }
  

執行效果如下圖: