PagedList 사용하기

3732 단어 아 SP. 네 TC#
ASP.NET MVC에서 스테디셀러 pager. 사용법 메모.

아래, 완성 이미지.

pagelist

전제


  • testdb에 멤버 테이블이 있습니다 (name, email 열이 있음)
  • 우선 스캐 폴드로 Controller와 View가 되어 있는 상태

  • 준비



    NuGet에서 PagedList.Mvc를 설치하십시오.

    구현



    이번에는 Index의 List 표시에 Pager를 넣고 싶습니다.
    표준으로 생성된 Index 액션을 아래와 같이 변경합니다.

    컨트롤러


    +using PagedList;
    
    (省略)
    
    // GET: Members
    -public ActionResult Index()
    -{
    -    return View(db.Members.ToList());
    -}
    
    +public ActionResult Index(int? page)
    {
    +    int pageNumber = page ?? 1;
    +    int pageSize = 5;
    
    +    var query = db.Members.ToList();
    
    +    return View(query.ToPagedList(pageNumber,pageSize));
    }
    

    특히 어려운 곳은 아무것도 없습니다.

    보기



    계속해서 View. PagedList.Mvc를 사용합니다.
    모델을 IEnumerable<>에서 PagedLinstIPagedList<>로 변경합니다.

    또한 model.name 등의 지정을 사용할 수 없게 되므로 model.FirstOrDefault().name 등으로 변경합니다.
    -@model IEnumerable<pagedlist01.Models.Members>
    +@using PagedList.Mvc
    +@model PagedList.IPagedList<pagedlist01.Models.Members>
    
    @{
        ViewBag.Title = "Index";
    }
    
    <h2>Index</h2>
    
    <p>
        @Html.ActionLink("Create New", "Create")
    </p>
    <table class="table">
        <tr>
            <th>
    +            @Html.DisplayNameFor(model => model.FirstOrDefault().name)
            </th>
            <th>
    +            @Html.DisplayNameFor(model => model.FirstOrDefault().email)
            </th>
            <th></th>
        </tr>
    
    @foreach (var item in Model) {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.name)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.email)
            </td>
            <td>
                @Html.ActionLink("Edit", "Edit", new { id=item.id }) |
                @Html.ActionLink("Details", "Details", new { id=item.id }) |
                @Html.ActionLink("Delete", "Delete", new { id=item.id })
            </td>
        </tr>
    }
    
    </table>
    
    <div>
    +    Page: @Model.PageNumber / @Model.PageCount
    </div>
    
    <div>
    +    @Html.PagedListPager(Model, page => Url.Action("Index", new { page, pageSize = Model.PageSize }))
    </div>
    

    나중에 필요한 형식을 HTML 도우미로 지정합니다. 이상.

    참고


  • ぃ tp // 코 m / 초록 44 / ms / 6702f1f041 아 663 네 57
  • htps : // 기주 b. 코 m / t로 y 오오 데 / 파게 d ぃ st
  • 좋은 웹페이지 즐겨찾기