728x90
반응형
1. NoticeList.cshtml
<!-- 페이징:S -->
<div class="pagination MT15">
@Html.Raw(PagingManager.Paging(ViewBag.page, ViewBag.totalCount, ViewBag.pageSize, ViewBag.url.ToString()))
</div>
<!-- 페이징:E -->
2. PagingManager.cs
public static string Paging(int iPageNo, int iRecordCount, int iPageSize, string iUrl)
{
string str = "";
if (iRecordCount > 0)
{
string strTotalCount = string.IsNullOrEmpty(string.Format("{0:#,###}", iRecordCount)) ? "0" : string.Format("{0:#,###}", iRecordCount);
//페이지수 카운트
int iPageCount = (int)((iRecordCount - 1) / iPageSize) + 1;
str += "<div class=\"pagination MT25\"><div class=\"FLOATL\"><span class=\"admCmmStit noindent FWB \" style=\"line-height:37px; font-size:12px\">전체 " + strTotalCount + "건</span></div>" + GetPaging(iPageNo, 10, iPageCount) + "</div>";
str += "<script>";
str += "function goList(page) {";
str += $"location.href=\"{iUrl}&page=\"+page;";
str += "}";
str += "</script>";
}
return str;
}
private static string GetPaging(int gotoPage, int blockSize, int pageCount)
{
string str = "";
//블럭 페이지 시작값 설정
int blockPage = (int)((gotoPage - 1) / blockSize) * blockSize + 1;
// ----- 이전10개 -----
// 1페이지라면 링크를 안하고 아니라면 10페이지를 뺀 페이지값을 넘긴다.
if (blockPage != 1)
{
str += "<div class=\"ptp contr dprev\"><a href=\"#\" onclick=\"goList('1')\" class=\"txt\"></a></div>";
str += "<div class=\"ptp contr prev\"><a href=\"#\" onclick=\"goList('" + (blockPage - 1) + "')\" class=\"txt\"></a></div>";
}
// ----- 블럭당 페이지 1~10 숫자 표기 시작 -----
// 페이지번호를 10개씩 출력하는 소스로 i변수를 카운트시켜 10개이내이면서 마지막페이지까지만 반복시킨다.
int i = 1;
while (i <= blockSize && blockPage <= pageCount)
{
if (blockPage == gotoPage)
{
str += "<div class=\"ptp active\"><a href=\"#\" class=\"txt\">" + blockPage + "</a></div>";
}
else
{
str += "<div class=\"ptp\"><a href=\"#\" onclick=\"goList('" + blockPage + "')\" class=\"txt\">" + blockPage + "</a></div>";
}
blockPage++;
i++;
}
if (blockPage <= pageCount)
{
str += "<div class=\"ptp contr next\"><a href=\"#\" onclick=\"goList('" + blockPage + "')\" class=\"txt\"></a></div>";
str += "<div class=\"ptp contr dnext\"><a href=\"#\" onclick=\"goList('" + pageCount + "')\" class=\"txt\"></a></div>";
}
return str;
}
3. NoticeController.cs
public ActionResult NoticeList(int page = 1)
{
int pageSize = 10;
int totalCount = 0;
IEnumerable<Notice> list = NoticeDA.Get_NoticeList(page, pageSize, out totalCount);
ViewBag.totalCount = totalCount;
ViewBag.page = page;
ViewBag.pageSize = pageSize;
ViewBag.url = $"/Notice/NoticeList?";
return View(list);
}
728x90
반응형
'ASP.NET MVC' 카테고리의 다른 글
Visual Studio 2019] 디버깅 팁, Debugger Tips (0) | 2021.12.23 |
---|---|
ASP.NET] DapperManager.cs (0) | 2021.12.22 |
ASP.NET] 로그인 체크, 접속권한 체크 (5) | 2021.12.21 |
ASP.NET] Select 태그 만드는 다양한 방법 (DropDownList, DropDownListFor, EnumDropDownListFor) (0) | 2021.12.08 |
ASP.NET] 경로 노출없이, idx로 파일정보 조회하여 ZIP 다운로드 처리 (0) | 2021.12.06 |
댓글