先睹为快,效果图如下:
分页使用的是Paging with ASP.NET MVC,你可以点击这里下载和了解使用说明。或者从这里下载源码:/Files/Ferry/VS2010/martijnboland-MvcPaging-515e582.zip
下载下来后解压,打开解决方案,将MvcPaging项目编译,然后在Debug/Bin目录下找到MvcPaging.dll,并添加到项目中(添加引用)。
解决方案中还有一个Demo项目,会对你使用MvcPaging有帮助。
好了,接下来,看看如何改造下我们的代码,实现列表翻页功能。
一、添加引用
就是上面说的,不多说了。如果使用过程中发现找不到某个(些)对象,将项目编译一下就好了,当然命名空间要引用。
二、改造Controller:NewsController.cs
先添加对命名空间的引用:
再将List方法修改如下:
{
const int defaultPageSize = 1 ;
int currentPageIndex = page.HasValue ? page.Value - 1 : 0 ;
return View(db.CMSNews.OrderByDescending(Model => Model.PubDate).ToList().ToPagedList(currentPageIndex, defaultPageSize));
// return View(db.CMSNews.OrderByDescending(Model => Model.PubDate).ToList());
}
三、修改View:List.aspx
先修改Page命令,就是修改Inherits属性,再添加对所需命名空间的引用:
这里的CMSNews就是我们这个例子中的Model。
<% @ Page Title = "" Language = " C# " MasterPageFile = " ~/Views/Shared/Site.Master " Inherits = " ViewPage<IPagedList<CMSNews>> " %>
<% @ Import Namespace = " MvcPaging " %>
<% @ Import Namespace = " MVC2Demo.Models " %>
添加分页代码(div部分是新加的):
<% : Html.ActionLink( " Create New " , " Create " ) %>
< div class ="pager" >
<% = Html.Pager(Model.PageSize, Model.PageNumber, Model.TotalItemCount) %>
</ div >
</ p >
四、添加CSS
实际上,上面的步骤已经完成的分页的功能,但要让分页更好看一些,那么从下载的Demo项目的Content/Site.css中将如下代码拷贝到我们站点的Css文件中,我们也看到了,在上面的div中也指定了使用此样式。
.pager
{
margin : 8px 3px ;
padding : 3px ;
}
.pager .disabled
{
border : 1px solid #ddd ;
color : #999 ;
margin-top : 4px ;
padding : 3px ;
text-align : center ;
}
.pager .current
{
background-color : #06c ;
border : 1px solid #009 ;
color : #fff ;
font-weight : bold ;
margin-top : 4px ;
padding : 3px 5px ;
text-align : center ;
}
.pager span, .pager a
{
margin : 4px 3px ;
}
.pager a
{
border : 1px solid #c0c0c0 ;
padding : 3px 5px ;
text-align : center ;
text-decoration : none ;
}