ASP.Net MVC分页分享

下面是一个helper类。

ASP.Net MVC分页分享
ASP.Net MVC分页分享
ASP.Net MVC分页分享namespaceSystem.Web.Mvc
ASP.Net MVC分页分享
{
ASP.Net MVC分页分享
publicenumBarStyle
ASP.Net MVC分页分享
{
ASP.Net MVC分页分享yahoo,digg,meneame,flickr,sabrosus,scott,quotes,black,black2,grayr,yellow,jogger,starcraft2,tres,megas512,technorati,youtube,msdn,badoo,viciao,yahoo2,green_black
ASP.Net MVC分页分享}

ASP.Net MVC分页分享
publicstaticclassPagerBarExtension
ASP.Net MVC分页分享
{
ASP.Net MVC分页分享
ASP.Net MVC分页分享
publicstaticstringRenderPagerBar(thisHtmlHelperhtml,intpage,inttotal)
ASP.Net MVC分页分享
{
ASP.Net MVC分页分享
returnRenderPagerBar(html,page,total,BarStyle.technorati);
ASP.Net MVC分页分享}

ASP.Net MVC分页分享
ASP.Net MVC分页分享
publicstaticstringRenderPagerBar(thisHtmlHelperhtml,intpage,inttotal,BarStylestyle)
ASP.Net MVC分页分享
{
ASP.Net MVC分页分享
returnRenderPagerBar(html,page,total,style,total);
ASP.Net MVC分页分享}

ASP.Net MVC分页分享
ASP.Net MVC分页分享
publicstaticstringRenderPagerBar(thisHtmlHelperhtml,intpage,inttotal,BarStylestyle,intshow)
ASP.Net MVC分页分享
{
ASP.Net MVC分页分享
if(total==1)
ASP.Net MVC分页分享
{
ASP.Net MVC分页分享
return"";
ASP.Net MVC分页分享}

ASP.Net MVC分页分享
else
ASP.Net MVC分页分享
{
ASP.Net MVC分页分享StringBuildersb
=newStringBuilder();
ASP.Net MVC分页分享
string_path=html.ViewContext.HttpContext.Request.Path;
ASP.Net MVC分页分享sb.Append(
"<divclass=\"");
ASP.Net MVC分页分享
sb.Append(style.ToString());
ASP.Net MVC分页分享sb.Append(
"\">");
ASP.Net MVC分页分享

ASP.Net MVC分页分享
stringqueryString=html.ViewContext.HttpContext.Request.QueryString.ToString();
ASP.Net MVC分页分享
if(queryString.IndexOf("page=")<0)
ASP.Net MVC分页分享
{
ASP.Net MVC分页分享queryString
+="&page="+page;
ASP.Net MVC分页分享}

ASP.Net MVC分页分享Regexre
=newRegex(@"page=\d+",RegexOptions.IgnoreCase);
ASP.Net MVC分页分享
stringresult=re.Replace(queryString,"page={0}");
ASP.Net MVC分页分享
ASP.Net MVC分页分享
if(page!=1)
ASP.Net MVC分页分享
{
ASP.Net MVC分页分享sb.AppendFormat(
"<span><ahref=\"{0}\"title=\"第一页\">{1}</a></span>",_path+"?"+string.Format(result,1),"<<");
ASP.Net MVC分页分享sb.AppendFormat(
"<span><ahref=\"{0}\"title=\"上一页\">{1}</a></span>",_path+"?"+string.Format(result,page-1),"<");
ASP.Net MVC分页分享}

ASP.Net MVC分页分享
if(page>(show+1))
ASP.Net MVC分页分享
{
ASP.Net MVC分页分享sb.AppendFormat(
"<span><ahref=\"{0}\"title=\""+(show+1)+"页\">{1}</a></span>",_path+"?"+string.Format(result,page-(show+1)),"..");
ASP.Net MVC分页分享
ASP.Net MVC分页分享}

ASP.Net MVC分页分享
for(inti=page-show;i<=page+show;i++)
ASP.Net MVC分页分享
{
ASP.Net MVC分页分享
if(i==page)
ASP.Net MVC分页分享
{
ASP.Net MVC分页分享sb.AppendFormat(
"<spanclass=\"current\">{0}</span>",i);
ASP.Net MVC分页分享}

ASP.Net MVC分页分享
else
ASP.Net MVC分页分享
{
ASP.Net MVC分页分享
if(i>0&i<=total)
ASP.Net MVC分页分享
{
ASP.Net MVC分页分享sb.AppendFormat(
"<span><ahref=\"{0}\">{1}</a></span>",_path+"?"+string.Format(result,i),i);
ASP.Net MVC分页分享}

ASP.Net MVC分页分享}

ASP.Net MVC分页分享}

ASP.Net MVC分页分享
if(page<(total-(show)))
ASP.Net MVC分页分享
{
ASP.Net MVC分页分享sb.AppendFormat(
"<span><ahref=\"{0}\"title=\""+(show+1)+"页\">{1}</a></span>",_path+"?"+string.Format(result,page+(show+1)),"..");
ASP.Net MVC分页分享
ASP.Net MVC分页分享}

ASP.Net MVC分页分享
if(page<total)
ASP.Net MVC分页分享
{
ASP.Net MVC分页分享sb.AppendFormat(
"<span><ahref=\"{0}\"title=\"下一页\">{1}</a></span>",_path+"?"+string.Format(result,page+1),">");
ASP.Net MVC分页分享sb.AppendFormat(
"<span><ahref=\"{0}\"title=\"最后一页\">{1}</a></span>",_path+"?"+string.Format(result,total),">>");
ASP.Net MVC分页分享
ASP.Net MVC分页分享}

ASP.Net MVC分页分享sb.AppendFormat(
"<spanclass=\"current\">共{1}页</span>",page,total);
ASP.Net MVC分页分享sb.Append(
"</div>");
ASP.Net MVC分页分享
returnsb.ToString();
ASP.Net MVC分页分享}

ASP.Net MVC分页分享}

ASP.Net MVC分页分享}

ASP.Net MVC分页分享}
ASP.Net MVC分页分享

使用(VIEW):

ASP.Net MVC分页分享
ASP.Net MVC分页分享
ASP.Net MVC分页分享<%@PageLanguage="C#"MasterPageFile="~/Views/Shared/Site.Master"Inherits="System.Web.Mvc.ViewPage"%>
ASP.Net MVC分页分享
ASP.Net MVC分页分享
<asp:ContentID="indexHead"ContentPlaceHolderID="head"runat="server">
ASP.Net MVC分页分享
<title>HomePage</title>
ASP.Net MVC分页分享
<linkhref="/Content/pagecss.css"rel="stylesheet"type="text/css"/>
ASP.Net MVC分页分享
</asp:Content>
ASP.Net MVC分页分享
ASP.Net MVC分页分享
<asp:ContentID="indexContent"ContentPlaceHolderID="MainContent"runat="server">
ASP.Net MVC分页分享
<%=Html.ActionLink("带其它参数","Index",new{s="MVC"})%>
ASP.Net MVC分页分享
<%=Html.ActionLink("带其它参数2","Index",new{cid=3})%>
ASP.Net MVC分页分享
<%=Html.ActionLink("带其它参数3","Index",new{s="MVC",cid=5})%>
ASP.Net MVC分页分享
ASP.Net MVC分页分享
<%=Html.RenderPagerBar(Convert.ToInt32(ViewData["Page"]),Convert.ToInt32(ViewData["Total"]))%>
ASP.Net MVC分页分享
<%=Html.RenderPagerBar(Convert.ToInt32(ViewData["Page"]),Convert.ToInt32(ViewData["Total"]),BarStyle.badoo)%>
ASP.Net MVC分页分享
<%=Html.RenderPagerBar(Convert.ToInt32(ViewData["Page"]),Convert.ToInt32(ViewData["Total"]),BarStyle.badoo,3)%>
ASP.Net MVC分页分享
<%=Html.RenderPagerBar(Convert.ToInt32(ViewData["Page"]),Convert.ToInt32(ViewData["Total"]),BarStyle.black,4)%>
ASP.Net MVC分页分享
<%=Html.RenderPagerBar(Convert.ToInt32(ViewData["Page"]),Convert.ToInt32(ViewData["Total"]),BarStyle.digg,5)%>
ASP.Net MVC分页分享
<%=Html.RenderPagerBar(Convert.ToInt32(ViewData["Page"]),Convert.ToInt32(ViewData["Total"]),BarStyle.flickr,3)%>
ASP.Net MVC分页分享
<%=Html.RenderPagerBar(Convert.ToInt32(ViewData["Page"]),Convert.ToInt32(ViewData["Total"]),BarStyle.grayr,3)%>
ASP.Net MVC分页分享
ASP.Net MVC分页分享
</asp:Content>
ASP.Net MVC分页分享

最后一个int参数表示显示当前页左右各多少个页码

效果:

ASP.Net MVC分页分享

controller:

ASP.Net MVC分页分享
ASP.Net MVC分页分享
ASP.Net MVC分页分享publicActionResultIndex(int?page,strings,int?cid)
ASP.Net MVC分页分享{
ASP.Net MVC分页分享int_page=page??1;
ASP.Net MVC分页分享ViewData["Message"]="WelcometoASP.NETMVC!";
ASP.Net MVC分页分享ViewData["Page"]=_page;
ASP.Net MVC分页分享ViewData["Total"]=20;
ASP.Net MVC分页分享
ASP.Net MVC分页分享returnView();
ASP.Net MVC分页分享}
ASP.Net MVC分页分享

实例下载:/Files/francis67/MvcPagerDemo.rar