C#中easyUI DataGrid分页的前后端实现

前端代码:JQuery创建一个datagrid,jsondata是从后端获取的json对象,pager是dg的分页控件,通过onSelectPage事件刷新页面内容,其间调用query获取分页数据。

              $('#dg').datagrid({
                        pageList: [10, 20, 30, 40, 50],
                        data: jsondata,
                        pagination: true,
                        toolbar: '#tb',
                        columns: [[
                            { field: 'id', title: '编号', width: 20, align: 'center', sortable: true },
                            { field: 'username', title: '用户名', width: 50, align: 'center', sortable: true },
                            { field: 'sex', title: '性别', width: 20, align: 'center', sortable: true },
                            { field: 'birthday', title: '出生年月', width: 50, align: 'center', sortable: true },
                            { field: 'password', title: '密码', width: 20, align: 'center', sortable: true },
                            { field: 'address', title: '住址', width: 100, align: 'center', sortable: true },
                            { field: 'mobile', title: '手机', width: 50, align: 'center', sortable: true },
                            { field: 'email', title: '邮箱', width: 50, align: 'center', sortable: true },
                            { field: 'usergroup', title: '用户组', width: 20, align: 'center', sortable: true }
                        ]],
                        onClickRow: function (rowIndex, rowData) {
                            curFocuRowBh = rowData.bh;
                            curRowdata = rowData;
                            setValue(rowData);
                        }
                    });
                    var pager = $('#dg').datagrid('getPager');
                    pager.pagination({
                        pageSize: 20, 
                        beforePageText: '第', 
                        afterPageText: '页    共 {pages} 页',
                        displayMsg: '当前显示 {from} - {to} 条记录   共 {total} 条记录',
                        onSelectPage: function (pageNumber, pageSize) {
                            query(pageNumber, pageSize);
                        }
                    });
 function query(page, rows) {
            $.ajax({
                type: "post",
                url: "/UI/Main_page/userManage.aspx/getUsertbPageData",
                dataType: "text",
                async: false,
                data: "{pageindex:'" + page + "',pagesize:'" + rows+"'}",
                contentType: "application/json; charset=utf-8",
                success: function (data) {
                    var hh = JSON.parse(data);
                    var tempdata = JSON.parse(hh.d);
                    console.log(tempdata);
                    $('#dg').datagrid("loadData", tempdata);
                },
                error: function () {
                    alert("数据查询失败!");
                }
            })
        }

后端代码:

        //获取所有记录总数,用于total
        public static int GetUsertbCount() {
            string sql = string.Format("select count(id) as cnt from usertb"); 
            return Convert.ToInt32(SqlHelper.ExecuteDataTable(sql).Rows[0]["cnt"]);
        }
        //获取当前页的记录并转成json字符串
        public static string GetJson(string pageindex, string pagesize)
        {
            string sqltext = "select top " + pagesize + " * from usertb where id not in (select top(" + pagesize + " * (" + pageindex + " - 1)) id from usertb)";
            DataTable dt = SqlHelper.ExecuteDataTable(sqltext, new SqlParameter[] { });
            return JsonConvert.SerializeObject(dt);
        }
        //前端接口方法:获取一个标准的DataGrid要求的字符串
        [WebMethod]
        public static string getUsertbPageData(string pageindex, string pagesize)
        {
            //注意必须按照easyUI DataGrid要求的json格式返回json字符串,必须要有:total、rows两个头,否则前端分页不正常
            StringBuilder sb = new StringBuilder();
            sb.Append("{");
            sb.Append(string.Format("\"total\":{0},\"rows\":{1}", GetUsertbCount(), GetJson(pageindex, pagesize)));
            sb.Append("}");
            return sb.ToString();
        }

秋风写于淄博,业务联系与技术交流:Q375172665

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值