2013-03-18 138 views
0

我就如何包括上一个和下一个链接... 显示页面的问题我使用ASP.Net MVC 4使用这些代码:Pagination-asp.net MVC 4

VIEW:

<div class="pagination"> 
    <ul> 
     @for (int i = 1; i <= ViewBag.PagesCount; i++) 
     { 
      <text> 
       <li>@Html.ActionLink(i.ToString(), "Index", new { pagee = i })</li> 
      </text> 
     } 
    </ul> 
</div> 

控制器:

int offset = 15; 

int pagecount = ((pagee - 1) * offset); 

int totalPages = 0; 
int totalItems = 0; 

try 
{  
    totalItems = requestform.Count(); 
    while (totalItems > 0) 
    { 
     totalItems -= 15; 
     totalPages++; 
    } 
    ViewBag.PagesCount = totalPages; 
    return View(requestform.Skip(pagecount).Take(offset).ToList()); 
} 
catch 
{ 
    while (totalItems > 0) 
    { 
     totalItems -= 15; 
     totalPages++; 
    } 
    ViewBag.PagesCount = totalPages; 
    return View(requestform.Skip(pagecount).Take(offset).ToList()); 
} 

请在这方面帮助我。

+1

你得到什么错误?你有什么问题? – AaronLS 2013-03-18 06:07:54

+0

这可能会帮助你的分页:[链接](http://yassershaikh.com/custom-efficient-paging-in-asp-net-mvc-3-using-skip-and-take-linq-methods/) – Yasser 2013-03-18 08:05:33

+0

我试过它已经在使用IPageList.MVC但它不工作对我的项目有几个选项卡.... – Jhen 2013-03-19 01:50:47

回答

0

要添加分页页面,你会通过安装PagedList NuGet包开始。然后你就会在索引方法的其他变化,并添加分页链接到索引视图

请检查该链接 http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/sorting-filtering-and-paging-with-the-entity-framework-in-an-asp-net-mvc-application

+0

@ subinpanicker,它的工作在一个普通的项目......但是当我试图与几个使用它在我的项目标签,它不工作.... T_T ...请帮我这个...谢谢 – Jhen 2013-03-19 01:48:43

2

你说什么关于这个小扩展PagedList

+1

其工作...但我有几个标签运行它的问题.... – Jhen 2013-03-19 01:52:49

+0

其真棒。感谢您的分享 – 2013-04-13 19:04:46

0

我也建议PagedList只是通过NuGet包管理器,然后将其添加,

修改你的控制器看起来像这样:

public ActionResult Index(int? page) 
     { 
      var dbtable = db.DbTable.Include(s => s.ID).OrderBy(s => s.StyleName); //ensure records are sorted. 
      if (Request.HttpMethod != "GET") 
      { 
       page = 1; 
      } 
      int pageSize = 2; 
      int pageNumber = (page ?? 1); 
      return View(dbtable.ToPagedList(pageNumber, pageSize)); 
     } 

鉴于取代:

@model IEnumerable<MyMvcApplication.Models.dbtable> 

@model PagedList.IPagedList<MyMvcApplication.Models.dbtable> 

替换代码,看起来像

<th> 
      @Html.DisplayNameFor(model => model.ID) 
     </th> 

<th> 
      @Html.DisplayNameFor(model => model.First().ID) 
     </th> 

在页面的</table>标记后结束补充一点:

<div> 
    Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount 
    @if (Model.HasPreviousPage) 
    { 
     @Html.ActionLink("<<", "Index", new { page = 1}) 
     @Html.Raw(" "); 
     @Html.ActionLink("< Prev", "Index", new {page = Model.PageNumber - 1}) 
    } 
    else{ 
    @:<< 
    @Html.Raw(" "); 
     @:< Prev 
    } 

    @if (Model.HasNextPage) 
    { 
     @Html.ActionLink("Next >", "Index", new {page = Model.PageNumber + 1}) 
     @Html.Raw(" "); 
     @Html.ActionLink(">>", "Index", new {page = Model.PageCount}) 
    } 
    else{ 
    @:Next > 
    @Html.Raw(" ") 
@:>> 
    } 
</div> 
+0

您可以使用'@ Html.PagedListPager(Model,page => Url.Action(“Index”,new {page = page})'为您自动生成分页链接... – 2013-08-03 08:18:39