jQuery MiniUI

标题: 客户端分页问题 [打印本页]

作者: renle    时间: 2016-9-7 15:20:28     标题: 客户端分页问题

麻烦哪位大神用过miniUI的客户端分页Client Pagination ,能否帮我解释一下这些代码的意思呀,万分感谢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;
            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: '分页.txt',  
        dataType: 'text',
        async: false,
        success: function (text) {
            dataResult = mini.decode(text);
        }
    });

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



作者: felt    时间: 2016-9-7 15:53:46

fillData(0, grid.getPageSize(), dataResult, grid);
参数(起始页数,页面显示数量条数,数据,表格)

用ajax获取到全部数据,然后按页面和每页数据到数据里面获取到该页应该显示的数据,加载到表格里面。
按翻页都会触发beforeload,e.cancel=true阻止掉默认的服务端加载
作者: renle    时间: 2016-9-7 16:31:36

本帖最后由 renle 于 2016-9-7 16:33 编辑
felt 发表于 2016-9-7 15:53
fillData(0, grid.getPageSize(), dataResult, grid);
参数(起始页数,页面显示数量条数,数据,表格)

var start = pageIndex * pageSize, end = start + pageSize;
        for (var i = start, l = end; i < l; i++) {
            var record = data;
            if (!record) continue;
            arr.push(record);
        }
大神,这句该怎么理解,循环就是为了把数据显示到当前页吗,但是每次循环的pagsize都为0,而且每次判断只判断当前页面,那下一页面呢,例如我有21条数据,每页显示10条,总共可以显示三页,按照上述判断只能判断第一页,当I=L是跳出循环,只显示了第一页的10条数据,[attach]7922[/attach]
作者: felt    时间: 2016-9-7 17:41:03

renle 发表于 2016-9-7 16:31
var start = pageIndex * pageSize, end = start + pageSize;
        for (var i = start, l = end; i < ...

这段代码的作用是根据pagerIndex和pageSize从数据里面找到这页应该显示的数据。
这个方法在翻页按钮点击的时候就会触发,我们内部自动会生成pagesize和pageindex




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2