PagedList를 사용하여 ASP.NET MVC에서 페이지 네이션
6334 단어 아 SP. 네 TASP.NET_MVCC#LINQ
이 기사 개요
웹 앱에서 페이지 처리가 필요한 장면은 많지만 자력으로 구현하는 것은 힘들다.
Paginate 기능이 표준으로 붙어 있는 프레임워크도 있습니다만, ASP.NET MVC에는 없을 것 같기 때문에 PagedList 라고 하는 라이브러리를 사용해 본다.
PagedList (PagedList.MVC) 란 무엇입니까?
PagedList 는 Nuget 로 제일 DL 되고 있는 페이지 네이션용 라이브러리.
PagedList.MVC 는 HTML 헬퍼용의 라이브러리가 되기 때문에 양쪽 모두 세트로 인스톨 합니다.
(PagedList.MVC 쪽을 설치하면 PagedList도 함께 설치됩니다)
htps : // 기주 b. 코 m / T로 y 오오 데 / 파게 d st
htps //w w. 젖꼭지 t. 오 rg / 파 c 게 s / 파게 d ぃ st. Mvc
사용법(Model, Controller측)
// データベースから取得するためのIQueryable型を用意
IQueryable<Book> books = dbSet
.Where(b => b.Price < 3000)
.OrderBy(b => b.Title);
int pageNumber = 1; // ページ番号
int pageSize = 20; // 1ページに表示する件数
IPagedList<Book> bookPages = books.ToPagedList(pageNumber, pageSize); // Bookをページで取得
기본적인 사용법은 IQueryable 형에 대해서 확장 메소드 ToPagedList()
로 페이지 번호와 사이즈를 지정하는 것만.
IPagedList 형은 IEnumerable 형을 계승해 페이지 정보의 프로퍼티를 구현한 것.
books 는 ToPagedList()
런타임시, 필요한 개수의 LIMIT구를 SQL에 더한 형태로 지연 평가됩니다.
게다가 ToPagedList()
는 IQueryable 형의 확장 메소드이므로, 지난번 소개한 AutoMapper 의 매핑에 대해서도 그대로 실행할 수 있습니다.
IPagedList<BookViewModel> books = dbSet
.Where(b => b.Price < 3000)
.OrderBy(b => b.Title)
.ProjectTo<BookViewModel>() // AutoMapperによるBookViewModelへのマッピング
.ToPagedList(1, 20); // そのままメソッドチェーンで即時評価
이와 같이 LINQ to Entities라면 세분화, 정렬, 매핑, 페이지네이션을 모두 연결하여 한 번에 실행할 수 있습니다. 편리.
사용법(View측)
표시측은 이렇게
.cshtml@using PagedList
@using PagedList.Mvc;
@model IPagedList<App.Models.Book> // IPagedList型で渡す
...
foreach(var book in Model) {
// IEnumerableを継承しているので、何も意識せずリストアップ可能
}
// ページ番号表示
@Html.PagedListPager(Model, page => Url.Action("Index", page))
Bootstrap에 대응하고 있으므로, Bootstrap을 도입하고 있으면 페이지 번호는 다음과 같은 표시가 됩니다.
또, PagedListRenderOptions 를 PagedListPager() 의 제 3 인수에 지정하면, 미리 준비된 스타일을 간단하게 사용할 수 있습니다.
마지막으로
2일 연속으로, IQueryable형의 메리트와 단골 라이브러리를 소개했습니다.
계속해서 ASP.NET Advent Calendar 2015를 즐기십시오.
Reference
이 문제에 관하여(PagedList를 사용하여 ASP.NET MVC에서 페이지 네이션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/midori44/items/6702f1f041aa663eae57
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
PagedList 는 Nuget 로 제일 DL 되고 있는 페이지 네이션용 라이브러리.
PagedList.MVC 는 HTML 헬퍼용의 라이브러리가 되기 때문에 양쪽 모두 세트로 인스톨 합니다.
(PagedList.MVC 쪽을 설치하면 PagedList도 함께 설치됩니다)
htps : // 기주 b. 코 m / T로 y 오오 데 / 파게 d st
htps //w w. 젖꼭지 t. 오 rg / 파 c 게 s / 파게 d ぃ st. Mvc
사용법(Model, Controller측)
// データベースから取得するためのIQueryable型を用意
IQueryable<Book> books = dbSet
.Where(b => b.Price < 3000)
.OrderBy(b => b.Title);
int pageNumber = 1; // ページ番号
int pageSize = 20; // 1ページに表示する件数
IPagedList<Book> bookPages = books.ToPagedList(pageNumber, pageSize); // Bookをページで取得
기본적인 사용법은 IQueryable 형에 대해서 확장 메소드
ToPagedList()
로 페이지 번호와 사이즈를 지정하는 것만.IPagedList 형은 IEnumerable 형을 계승해 페이지 정보의 프로퍼티를 구현한 것.
books 는
ToPagedList()
런타임시, 필요한 개수의 LIMIT구를 SQL에 더한 형태로 지연 평가됩니다.게다가
ToPagedList()
는 IQueryable 형의 확장 메소드이므로, 지난번 소개한 AutoMapper 의 매핑에 대해서도 그대로 실행할 수 있습니다.IPagedList<BookViewModel> books = dbSet
.Where(b => b.Price < 3000)
.OrderBy(b => b.Title)
.ProjectTo<BookViewModel>() // AutoMapperによるBookViewModelへのマッピング
.ToPagedList(1, 20); // そのままメソッドチェーンで即時評価
이와 같이 LINQ to Entities라면 세분화, 정렬, 매핑, 페이지네이션을 모두 연결하여 한 번에 실행할 수 있습니다. 편리.
사용법(View측)
표시측은 이렇게
.cshtml
@using PagedList
@using PagedList.Mvc;
@model IPagedList<App.Models.Book> // IPagedList型で渡す
...
foreach(var book in Model) {
// IEnumerableを継承しているので、何も意識せずリストアップ可能
}
// ページ番号表示
@Html.PagedListPager(Model, page => Url.Action("Index", page))
Bootstrap에 대응하고 있으므로, Bootstrap을 도입하고 있으면 페이지 번호는 다음과 같은 표시가 됩니다.
또, PagedListRenderOptions 를 PagedListPager() 의 제 3 인수에 지정하면, 미리 준비된 스타일을 간단하게 사용할 수 있습니다.
마지막으로
2일 연속으로, IQueryable형의 메리트와 단골 라이브러리를 소개했습니다.
계속해서 ASP.NET Advent Calendar 2015를 즐기십시오.
Reference
이 문제에 관하여(PagedList를 사용하여 ASP.NET MVC에서 페이지 네이션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/midori44/items/6702f1f041aa663eae57
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(PagedList를 사용하여 ASP.NET MVC에서 페이지 네이션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/midori44/items/6702f1f041aa663eae57텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)