電話:
次のようにコードをコピーします。
var pageChange = 関数 (インデックス) {
var html = pager("divid", Index, 5, 1000, pageChange, { showGoTo: false, showFirst: false });
}
成し遂げる:
次のようにコードをコピーします。
pager = function (divPager、pageIndex、pageSize、totalCount、pageChange、opt) {
var theOpt = {
barSize: 5, //ページングバーに表示されるページ数
barTemplate: "{bar} 合計 {totalPage} ページ {totalCount} アイテム {goto}", // テンプレートを表示
autoHide: true, //自動的に非表示にするかどうか
showFirst: true, //totalPage>barSize の場合に最初のページのリンクを自動的に表示するかどうか
showLast: true, //totalPage>barSize の場合、最後のページのリンクを自動的に表示するかどうか
showGoTo: true, //GoToを表示するかどうか
autoHideGoTo: true //数が少ない場合、GoToを自動的に非表示にするかどうか
};
if (オプション) {
if(opt.barSize)
theOpt.barSize = opt.barSize;
if(opt.barTemplate)
theOpt.barTemplate = opt.barTemplate;
if (opt.autoHide == false)
theOpt.autoHide = false;
if (opt.showFirst == false)
theOpt.showFirst = false;
if (opt.showLast = false)
theOpt.showLast = false;
if (opt.showGoTo == false)
theOpt.showGoTo = false;
if (opt.autoHideGoTo == false)
theOpt.autoHideGoTo = false;
}
var handles = window.myPagerChanges = (function (x) { return x; } (window.myPagerChanges || {}));
if (!myPagerChanges[divPager]) myPagerChanges[divPager] = pageChange;
var startPage = 0 //ページングバーの開始ページ
var endPage = 0; ページバーの終了ページ
var showFirst = true;
var showLast = true;
if (isNaN(pageIndex)) {
ページインデックス = 1;
}
pageIndex = parseInt(pageIndex);
if (pageIndex <= 0)
ページインデックス = 1;
if (pageIndex * pageSize > totalCount) {
pageIndex = Math.ceil(totalCount / pageSize);
}
if (totalCount == 0) { //データが無い場合
document.getElementById(divPager).innerHTML = "";
戻る "";
}
var totalPage = Math.ceil(totalCount / pageSize);
if (theOpt.autoHide && totalCount <= pageSize) { //自動非表示
document.getElementById(divPager).innerHTML = "";
戻る "";
}
if (totalPage <= theOpt.barSize) {
開始ページ = 1;
endPage = this.totalPage;
theOpt.showLast = theOpt.showFirst = false;
}
それ以外 {
if (pageIndex <= Math.ceil(theOpt.barSize / 2)) { //最初の数ページ
開始ページ = 1;
endPage = theOpt.barSize;
theOpt.showFirst = false;
}
else if (pageIndex > (totalPage - theOpt.barSize / 2)) { //最後の数ページ
startPage = totalPage - theOpt.barSize + 1;
終了ページ = 合計ページ;
theOpt.showLast = false;
}
else { //真ん中のページ
startPage = pageIndex - Math.ceil(theOpt.barSize / 2) + 1;
endPage = pageIndex + Math.floor(theOpt.barSize / 2);
}
if (totalPage <= (theOpt.barSize * 1.5)) {
theOpt.showLast = theOpt.showFirst = false;
}
}
関数 _getLink(インデックス, テキスト) {
if (!txt) txt = インデックス;
return "<a href='javascript:;' style='margin: 2px 5px;border: 1px Solid #6d8cad;color: #0269BA;padding: 2px 5px;text-decoration: none;' onclick='myPagerChanges[/" " + divPager + "/"](" + インデックス + ")'>" + txt + "</a>";
}
var barHtml = "" //ページバー
barHtml += pageIndex == 1 ? "" : _getLink(pageIndex - 1, "前のページ");
if (theOpt.showFirst) {
barHtml += _getLink(1) + "<span>...</span>";
}
for (var インデックス = startPage; インデックス <= endPage; インデックス++) {
if (インデックス == ページインデックス) {
barHtml += "<span style='color:red;font-weight:blod; '>" +index + "</span>";
}
それ以外 {
barHtml += _getLink(index);
}
}
if (theOpt.showLast) {
barHtml += "<span>...</span>" + _getLink(totalPage);
}
barHtml += pageIndex == totalPage ? "" : _getLink(pageIndex + 1, "次のページ");
var gotoHtml = "" //ボックスとボタンに移動します。
if (theOpt.showGoTo && theOpt.barTemplate.indexOf("{goto}") > 0) {
if ((theOpt.autoHideGoTo && totalPage > 15) || theOpt.autoHideGoTo == false) {
var txtid = divPager + "_goIndex";
varindexVal = "document.getElementById(/"" + txtid + "/").value";
gotoHtml += "<input type='text' onkeypress='if(event.keyCode==13){myPagerChanges[/"" + divPager + "/"](" +indexVal + ")}' id='" + txtid + "' value=" + pageIndex + " style='width:30px'>";
gotoHtml += "<input type='button' class='page_bg' value='go' onclick='myPagerChanges[/"" + divPager + "/"](" +indexVal + ")'>";
}
}
//テンプレートを置き換える
var pagerHtml = theOpt.barTemplate.replace("{bar}", barHtml)
.replace("{合計数}", 合計数)
.replace("{pageIndex}", pageIndex)
.replace("{合計ページ}", 合計ページ)
.replace("{goto}", gotoHtml);
document.getElementById(divPager).innerHTML = pagerHtml;
pagerHtml を返します。
};