layPage异步分页

layPage分页,参照官网实例写了一份。如下:

function InitDataByPage(curr) {
    var pageSize = 5;
    $.getJSON("InitDataByPage", { "CFG_Table": cfg_table, "pageindex": curr, "pagesize": pageSize }, function (result) {
        //BindDataToTableByPage(result);//将获取到的数据动态加载到table
        var coun = result[0]._pagenum;//总数据条数
        var pagecount = coun % pageSize == 0 ? coun / pageSize : coun / pageSize + 1;//计算多少页
        laypage({
            cont: 'lay_page', //容器。值支持id名、原生dom对象,jquery对象。
            skin: '#fb771f',
            pages: pagecount, //通过后台拿到的总页数
            curr: curr, //初始化当前页
            groups: 10,//连续显示页数
            skip:true,//是否跳页
            first: '|<', //将首页显示为数字1,。若不显示,设置false即可
            last: '>|', //将尾页显示为总页数。若不显示,设置false即可
            prev: '<', //若不显示,设置false即可
            next: '>', //若不显示,设置false即可
            jump: function (obj, first) { //触发分页后的回调
                if (!first) { //点击跳页触发函数自身,并传递当前页:obj.curr
                    var pageindex = obj.curr - 1;
                    $.getJSON("InitDataByPage", { "CFG_Table": cfg_table, "pageindex": pageindex, "pagesize": pageSize }, function (result) {
                        BindDataToTableByPage(result);
                    })
                }
            }
        });
    })
}

后台SQL查询语句:

            var beginnum = 0;
            if (pageindex != 0)
            {
                beginnum = pageindex * pagesize;
            }
            var endnum = beginnum + pagesize;
            string sqltxt = "select tnum._pagenum, * from (select row_number() over(order by GUID) as rowNum, * from "+CFG_Table+ ") as t , (select COUNT(1) as _pagenum from "+CFG_Table+") as tnum 
where t.rowNum between
" + beginnum + " and "+ endnum;

通过select COUNT(1) from Table 获取总条数并返回给前台"var coun = result[0]._pagenum;//总数据条数"。

pageindex后台是从0开始,而layPage获取是从1开始,故前台对obj.curr进行减一操作以和后台相符。

单页面可以指定表名,不需要使用cfg_table传递进去。

BindDataToTableByPage()为我页面加载数据的方法、具体加载各自会有不同,具体不再粘出。

新手上路,没有考虑性能是否可行、仅仅在少量数据下测试。欢迎指正。

posted @ 2016-12-20 22:03  KnifeZ  阅读(3521)  评论(0编辑  收藏  举报