jquery ajax + javascript 를 통한 페이징 처리.
/* 페이징 처리 함수 */
Set_Pager = function (pageNum, totalPageCount, callBack, settings)
{
settings = $.extend(true,
{
"firstImg": "/Images/Common/btn_prev2.gif",
"prevImg": "/Images/Common/btn_prev.gif",
"nextImg": "/Images/Common/btn_next.gif",
"lastImg": "/Images/Common/btn_next2.gif",
displayCount: 10
}, settings);
var k = Math.floor((parseInt(pageNum) - 1) / settings.displayCount);
if (k < 0) k = 0;
var sIdx = k * settings.displayCount + 1,
eIdx = (totalPageCount < (k + 1) * settings.displayCount) ? totalPageCount : (k + 1) * settings.displayCount;;
var pagerCtr = $("#pager");
var first = "<a href='javascript:;' act= 'first' style='padding:2px;'><img src='" + settings.firstImg + "'></a>",
prev = "<a href='javascript:;' act= 'prev' style='padding:2px;'><img src='" + settings.prevImg + "'></a>",
next = "<a href='javascript:;' act= 'next' style='padding:2px;'><img src='" + settings.nextImg + "'></a>",
last = "<a href='javascript:;' act= 'last' style='padding:2px;'><img src='" + settings.lastImg + "'></a>",
middle = "", cls;
for (var i = sIdx; i <= eIdx ; i++)
{
if (parseInt(pageNum) === i)
{
middle += "<a href='javascript:;' style='font-weight:bold;color: #FE6418;' act='middle' pageNum= '" + i + "'>" + i + "</a>";
pagerCtr.attr("pageNum", pageNum);
}
else
middle += "<a href='javascript:;' act='middle' pageNum= '" + i + "'>" + i + "</a>";
if (i < eIdx)
middle += "<span class='page_bar'>|</span>";
}
if (parseInt(pageNum) === 1)
{
first = "";
prev = ""
}
if (parseInt(pageNum) === totalPageCount)
{
next = "";
last = "";
}
if (totalPageCount <= 1)
{
first = "";
prev = ""
next = "";
last = "";
}
pagerCtr.addClass("list_paging").children().remove();
$("<div class='paging_box'></div>")
.append(first)
.append(prev)
.append(middle)
.append(next)
.append(last).appendTo($("#pager"))
;
$(pagerCtr).find("a").on(
{
click: function ()
{
var _currPage = pagerCtr.attr("pageNum") === undefined ? 1 : parseInt(pagerCtr.attr("pageNum")),
_lastPage = parseInt(totalPageCount),
step = -1;
var act = $(this).attr("act");
switch (act)
{
case "first":
_currPage = 1;
break;
case "prev":
_currPage = _currPage + step;
break;
case "next":
step = step * -1;
_currPage = _currPage + step;
break;
case "last":
_currPage = _lastPage;
break;
default:
_currPage = $(this).attr("pageNum");
break;
}
if (_currPage < 1 || _currPage > _lastPage)
{
step = step * -1;
_currPage = _currPage + step;
}
/*$(pagerCtr).find("a").each(function(i)
{
if ($(this).text() == _currPage)
$(this).removeClass("num").addClass("numOn");
else
$(this).removeClass("numOn").addClass("num");
});*/
pagerCtr.attr("pageNum", _currPage);
callBack(_currPage);
Set_Pager(_currPage, totalPageCount, callBack);
}
});
};
/*자바스크립트 함수*/
GetStatusOfUse = function ()
{
var params =
{
pageNo : $("#pager").attr("pagenum") || 1
};
$("#excelParmas").val(JSON.stringify(params));
$.ajax({
url: "url",
type: "post",
data: JSON.stringify(params),
datatype: "json",
contentType: "application/json; charset=utf-8",
success: function (response)
{
var jsonData = JSON.parse(response.d);
Set_Pager(jsonData.pageNo, jsonData.totPageCount, function () { GetStatusOfUse(); });
},
error: function (a, b, c)
{
var msg = "";
alert(msg + " : " + c);
}
});
};
/*html*/
<div id="pager"></div>
'Script 이야기' 카테고리의 다른 글
DIV draggable (0) | 2015.11.18 |
---|---|
자바스크립트 스트링 포멧 함수 (0) | 2015.10.20 |
Ajax 호출로 갱신된 페이지 내부의 컨텐츠 뒤로 가기 버튼 눌렀을때 갱신 (0) | 2015.08.20 |
페이지 뒤로 가기 막기 (0) | 2015.07.17 |
DatePicker 달력 일자에 특정 이미지 표시하기. (0) | 2015.06.25 |