2013-09-13 5 views
-1

Как сделать разбиение на страницы в C# MVC?Как сделать разбиение на страницы в C# mvc

Я пытаюсь сделать что-то вроде этого,

Я хочу, чтобы получить 1000 записей из базы данных и сохранить его в стороне сервера, то я хочу, чтобы отправить 10 записей на каждой странице просмотра, когда пользователь запрашивает найденную страницу.

Я рассмотрел несколько примеров, но я не мог получить лучшее решение, я предпочитаю, чтобы я предложил или что-то лучшее решение для этого. (Я использую JQuery, а также и не используя бритву)

пример, который я прошел через

Paginated search results with LINQ to SQL

Заранее спасибо

+0

Там в пакет от Microsoft под названием WebMatrix, который имеет WebGrid в нем, который поддерживает пейджинг, вы можете попробовать. http://msdn.microsoft.com/en-us/magazine/hh288075.aspx – asymptoticFault

ответ

0

пейджинга в ASP.NET MVC является проблема решена с помощью некоторых библиотеки; вы можете найти их на Nuget.org http://www.nuget.org/packages?q=paging.

Я хочу получить 1000 записей из базы данных и сохранить их на стороне сервера, после чего я хочу отправить 10 записей на каждую страницу, чтобы просмотреть, когда пользователь запрашивает страницу поиска.

Извлечение 1000 записей и сохранение их в вашем приложении не было бы идеальным. Было бы лучше получить 10 записей в каждом запросе; как вы упомянули в своем вопросе, решение, которое использует Skip и Take в запросе linq, отлично. Тем не менее, нет проблем с кэшированием данных страницы.

0

Попробуйте это Один из самых простых способа

Контроллер

using PagedList; 
public ActionResult Index(int ? pagePos) 
{ 
     //return View(db.Items.ToList());// Change this as following 
     int pageNumber = (pagePos ?? 1); 
     return View(db.Items.ToList().ToPagedList(pageNumber, 30)); //30 is the size of records in a single page 
} 

Index.cshtml

@*@model IEnumerable<ProjectDB.Models.Item>*@ 
@*Change These Also as following*@ 
@model PagedList.IPagedList<ProjectDB.Models.Item> 
@using PagedList.Mvc 


<table class="table"> 
<tr> 
    <th> 
     Name 
    </th> 
    <th> 
     ID 
    </th> 

    <th></th> 
</tr> 

@foreach (var item in Model) { 
<tr> 
    <td> 
     @Html.DisplayFor(modelItem => item.Name) 
    </td> 
    <td> 
     @Html.DisplayFor(modelItem => item.ID) 
    </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> 

@*Pagination Code Starts*@ 

<div class="pageCount"> 
    Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount 
</div> 
    @Html.PagedListPager(Model, pagePos => Url.Action("Index", new { pagePos })) 
Смежные вопросы