jQuery MiniUI

 找回密码
 立即注册
查看: 2889|回复: 4
打印 上一主题 下一主题

Datagrid怎么服务端分页 [复制链接]

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 2015-4-25 22:54:36 |只看该作者 |倒序浏览
怎么服务端分页,我是后台返回的数据,数据结构和控件需要的结构符合,但是为什么还是查询出所有??而不是按分页显示数据??


然后前台显示所有



(注:我是后台查询所有数据,然后处理成该控件数据结构的数据。。。不知道是不是这样,,求解,,,入门不太懂 这分页的实现。。。。)
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 2

沙发
发表于 2015-4-25 23:17:49 |只看该作者
        public Hashtable GetDepartmentEmployees(string departmentId, int index, int size)
        {
            string sql = "select * from t_employee where dept_id = '" + departmentId + "'";
            ArrayList dataAll = DBUtil.Select(sql);

            //实现一个内存分页(实际应该使用SQL分页)
            ArrayList data = new ArrayList();
            int start = index * size, end = start + size;

            for (int i = 0, l = dataAll.Count; i < l; i++)
            {
                Hashtable record = (Hashtable)dataAll[i];
                if (record == null) continue;
                if (start <= i && i < end)
                {
                    data.Add(record);
                }
            }

            Hashtable result = new Hashtable();
            result["data"] = data;
            result["total"] = dataAll.Count;

            return result;
        }


以上的代码是自带的参考

Rank: 3Rank: 3

板凳
发表于 2015-4-25 23:23:49 |只看该作者
OK,自己解决。。。。这个分页的话,可能并不是客户端处理,后台只是提供 总数量(数据条数),分页还是依靠前台的 传参pageIndex和pageSize交给后台进行分页处理。。。。这正好符合我数据库分页的做法

Rank: 2

地板
发表于 2015-4-26 21:41:11 |只看该作者
    var grid = mini.get("datagrid1");

    // 分页填充细节处理
    function fillData(pageIndex, pageSize, dataResult, grid) {
        
        var data = dataResult.data, totalCount = dataResult.total;

        var arr = [];
        var start = pageIndex * pageSize, end = start + pageSize;
        for (var i = start, l = end; i < l; i++) {
            var record = data[i];
            if (!record) continue;
            arr.push(record);
        }
        

        grid.setTotalCount(totalCount);
        grid.setPageIndex(pageIndex);
        grid.setPageSize(pageSize);

        grid.setData(arr);
    }

    // 监听分页前事件,阻止后自行设置当前数据和分页信息
    grid.on("beforeload", function (e) {
        e.cancel = true;

        var pageIndex = e.data.pageIndex, pageSize = e.data.pageSize;
        fillData(pageIndex, pageSize, dataResult, grid);
    });

    ////////////////////////////////////////////////////////////////////////

    // 获取所有数据和总记录数 { total: 100, data: [...] }
    var dataResult = null;
    $.ajax({
        url: 'data.txt',
        dataType: 'text',
        async: false,
        success: function (text) {
            dataResult = mini.decode(text);
        }
    });

    // 第一次设置
    fillData(0, grid.getPageSize(), dataResult, grid);

=========================
以上为官方的客户端分面示例

Rank: 8Rank: 8

5#
发表于 2015-4-27 09:17:34 |只看该作者
wendys1127 发表于 2015-4-25 23:23
OK,自己解决。。。。这个分页的话,可能并不是客户端处理,后台只是提供 总数量(数据条数),分页还是依 ...

默认是服务端分页,我们会传递pagerSize和pagerIndex到后台,后台返回对应的数据
具体的可以参考一下我们试用开发包内的后台方法

Archiver|普加软件

GMT+8, 2024-11-25 07:02 , Processed in 1.052701 second(s), 11 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部