前に書いたjqueryのページングをアップグレードします

5156 ワード

以前书いたページ分けには长い时间がかかりましたが、ページ分けにはページ以外にもいくつかのパラメータが渡されることがあります.以前は操作时にパスのパラメータを隠しhiddenの中に置いて、ページ分けの时に取り出すのが面倒でした.今日は大丈夫です.包装し直しました.
直接コードをつけましょう
cssはbootstrapでページングするスタイルを使いました

.pagination-lg > li:first-child > a,
.pagination-lg > li:first-child > span {
border-bottom-left-radius: 6px;
border-top-left-radius: 6px;
}

.pagination-lg > li:last-child > a,
.pagination-lg > li:last-child > span {
border-top-right-radius: 6px;
border-bottom-right-radius: 6px;
}

.pagination-sm > li > a,
.pagination-sm > li > span {
padding: 5px 10px;
font-size: 12px;
}

.pagination-sm > li:first-child > a,
.pagination-sm > li:first-child > span {
border-bottom-left-radius: 3px;
border-top-left-radius: 3px;
}

.pagination-sm > li:last-child > a,
.pagination-sm > li:last-child > span {
border-top-right-radius: 3px;
border-bottom-right-radius: 3px;
}

.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
}

ページングコード:

(function ($) {
var PageFunc = function PageFunc() { }
$.PageFunc = function (Total, PageSize, curPageNum, FunUrl,paramStr) {
if (PageSize == "" || PageSize == null || PageSize == undefined) {
PageSize = 10;
}
if (curPageNum == "" || curPageNum == null || curPageNum == undefined) {
curPageNum = 1;
}
var hasParam=true;
if (paramStr == "" || paramStr == null || paramStr == undefined) {
hasParam = false;
}
//     
Total = parseInt(Total); //    
PageSize = parseInt(PageSize); //     
curPageNum = parseInt(curPageNum); //   
//   
var AllPage = Math.floor(Total / PageSize);
if (Total % PageSize != 0) {
AllPage++;
}

var navHtml = "
";
if (curPageNum <= 0)
curPageNum = 1;
if (AllPage > 1) {
if (curPageNum != 1) {
//トップページ接続処理
var home=1;
if(hasParam)
{
home=home+","+paramStr;
}
navHtml += "
  • |<
  • ";
    }
    if (curPageNum > 1) {
    var previous=parseInt(parseInt(curPageNum) - 1);
    if(hasParam)
    {
    previous=previous+","+paramStr;
    }
    //前ページへの接続処理
    navHtml += "
  • <<
  • ";
    }
    else {
    navHtml += "<< ";
    }
    var currint = 5;
    for (var i = 0; i <= 10; i++) {
    //最大10ページ、前5ページ、後ろ5ページまで表示
    if ((curPageNum + i - currint) >= 1 && (curPageNum + i - currint) <= AllPage)
    if (currint == i) {
    //現在のページ処理
    navHtml += "" + curPageNum + "(current) ";
    }
    else {
    //一般ページ処理
    var n = parseInt(parseInt(curPageNum) + parseInt(i) - parseInt(currint));
    var nstr=n;
    if(hasParam)
    {
    nstr=nstr+","+paramStr;
    }
    navHtml += "
  • " + n + "
  • ";
    }
    }
    if (curPageNum < AllPage) {
    //次ページへのリンク処理
    var next=parseInt(parseInt(curPageNum) + 1);
    if(hasParam)
    {
    next=next+","+paramStr;
    }
    navHtml += "
  • >>
  • ";
    }
    else {
    navHtml += ">> ";
    }
    if (curPageNum != AllPage) {
    var last=parseInt(AllPage);
    if(hasParam)
    {
    last=last+","+paramStr;
    }
    navHtml += "
  • >|
  • ";
    }
    }
    if(parseInt(AllPage)!=0)
    {
    navHtml += "
  • " + curPageNum + "/" + AllPage + "
  •   ";
    }
    navHtml+="";
    return navHtml;
    };
    })(jQuery);
    呼び出し方法:
    注意:第1パラメータは必ず現在のページの値ですね.
    
    function aa(curpage,param1,param2){
    if (curpage == "" || curpage == null || curpage == undefined) {
    curpage = 1;
    }
    var pagesize = 5;
    var paramStr="";
    paramStr=param1+","+param2+";
    $.post("/appdefult/apporder",{"categoryId":param1,"name":param2,"curpage":curpage,"pagesize":pagesize},function(mydata){ 
    var pageHtml= $.PageFunc(mydata.total, pagesize, curpage, "aa",paramStr);
    $(".page").html(pageHtml);
    },"json");
    }