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()為我頁面加載數據的方法、具體加載各自會有不同,具體不再粘出。

新手上路,沒有考慮性能是否可行、僅僅在少量數據下測試。歡迎指正。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM