질문으로 시작되었지만 실험을 해본 결과 솔루션으로 바뀌 었습니다! 그래서 나는 이것을 너와 함께 나누겠다고 생각했다. 내 질문 :HowTo : MvcContrib.Grid를 사용하지 않고 MvcContrib.Pagination을 사용하십시오.
MvcContrib.Grid를 사용하지 않고 MvcContrib.Pagination을 사용하는 방법보기?
내 대답은 다음과 같습니다...
질문으로 시작되었지만 실험을 해본 결과 솔루션으로 바뀌 었습니다! 그래서 나는 이것을 너와 함께 나누겠다고 생각했다. 내 질문 :HowTo : MvcContrib.Grid를 사용하지 않고 MvcContrib.Pagination을 사용하십시오.
MvcContrib.Grid를 사용하지 않고 MvcContrib.Pagination을 사용하는 방법보기?
내 대답은 다음과 같습니다...
내가 헬프 데스크 티켓팅 시스템을 구축하고 (나는 종류의 C#을 초보자입니다 - NerdDinner에서 많은 포인터를 가지고)와 I가 호출 라이브러리의 일종을 사용하고자하는 보기와 함께 도와주세요. MvcContrib.Pagination을 발견하고이를보기 위해 작동하도록했습니다. 그것은 내 습관이므로 MvcContrib.Grid를 사용하지 않습니다.
내보기의 List.aspx를 버전을 축소 :
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<MyProject.Areas.HelpDesk.Models.hd_Ticket>>" %>
<%@ Import Namespace="MyProject.Areas.HelpDesk.Controllers" %>
<%@ Import Namespace="MvcContrib.Pagination" %>
<h2>Help Desk Tickets (showing <%= Model.Count() %> of <%= ViewData["totalItems"] %>)</h2>
<% foreach (var item in Model) { %>
<h3><%= Html.Encode(item.Subject)%></h3>
<% } %>
<p><%= Html.Pager((IPagination)Model)%></p>
내 컨트롤러 (일부) TicketController.cs :
TicketRepository ticketRepository = new TicketRepository();
public ActionResult List(int? page, int? pageSize)
{
IPagination<hd_Ticket> tickets = null;
int dPageSize = 50;
int totalItems;
tickets = ticketRepository.GetTickets().ToList().AsPagination(page ?? 1, pageSize ?? dPageSize);
ViewData["totalItems"] = tickets.TotalItems;
return View("List", tickets);
}
내가 반환 저장소 패턴을 사용하고 있습니다 결과는 IQueryable입니다.
public class TicketRepository
{
private HelpDeskDataContext db = new HelpDeskDataContext();
public IQueryable<hd_Ticket> FindAllTickets()
{
return from ticket in db.hd_Tickets
orderby ticket.CreatedDate descending
select ticket;
}
}
모든이 일부 사소한 수 있지만, 나 같은 사람은 C# 및 ASP.NET MVC 및 페이징을 배우려고 노력하는 경우, 다음이 유용 할 수 있습니다 : 여기에
TicketRepository.cs의 일부 파일입니다 . 내가에서 발견 된 NerdDinner 튜토리얼을 수행하는 초보자 추천 :
http://nerddinnerbook.s3.amazonaws.com/Intro.htm
:
작품의 벌금을 내게 ... :) – DucDigital
당신은) AsPagination 전에 ToList()을 (호출하지 않아야합니다. ToList()는 쿼리의 모든 항목 목록을 작성하므로 나중에 페이지의 하위 집합 만 표시하더라도 저장소에서 모든 항목을 가져옵니다. – dmnd