asp.net MVC分页代码分享
本文实例为大家分享了MVC分页代码,供大家参考,具体内容如下
usingSystem.Collections.Generic;
usingSystem.Collections.Specialized;
usingSystem.Linq;
usingSystem.Web;
usingSystem.Text;
usingSystem.Web.Mvc;
usingSystem.Web.Routing;
usingSystem.Data.Objects.DataClasses;
namespaceSystem.Web.Mvc
{
publicstaticclassPagerHelper
{
///<summary>
///分页
///</summary>
///<paramname="helper"></param>
///<paramname="id">分页id</param>
///<paramname="currentPageIndex">当前页</param>
///<paramname="pageSize">分页尺寸</param>
///<paramname="recordCount">记录总数</param>
///<paramname="htmlAttributes">分页头标签属性</param>
///<paramname="className">分页样式</param>
///<paramname="mode">分页模式</param>
///<returns></returns>
publicstaticstringPager(thisHtmlHelperhelper,stringid,intcurrentPageIndex,intpageSize,intrecordCount,objecthtmlAttributes,stringclassName,PageModemode)
{
TagBuilderbuilder=newTagBuilder("table");
builder.IdAttributeDotReplacement="_";
builder.GenerateId(id);
builder.AddCssClass(className);
builder.MergeAttributes(newRouteValueDictionary(htmlAttributes));
builder.InnerHtml=GetNormalPage(currentPageIndex,pageSize,recordCount,mode);
returnbuilder.ToString();
}
///<summary>
///分页
///</summary>
///<paramname="helper"></param>
///<paramname="id">分页id</param>
///<paramname="currentPageIndex">当前页</param>
///<paramname="pageSize">分页尺寸</param>
///<paramname="recordCount">记录总数</param>
///<paramname="className">分页样式</param>
///<returns></returns>
publicstaticstringPager(thisHtmlHelperhelper,stringid,intcurrentPageIndex,intpageSize,intrecordCount,stringclassName)
{
returnPager(helper,id,currentPageIndex,pageSize,recordCount,null,className,PageMode.Normal);
}
///<summary>
///分页
///</summary>
///<paramname="helper"></param>
///<paramname="id">分页id</param>
///<paramname="currentPageIndex">当前页</param>
///<paramname="pageSize">分页尺寸</param>
///<paramname="recordCount">记录总数</param>
///<returns></returns>
publicstaticstringPager(thisHtmlHelperhelper,stringid,intcurrentPageIndex,intpageSize,intrecordCount)
{
returnPager(helper,id,currentPageIndex,pageSize,recordCount,null);
}
///<summary>
///分页
///</summary>
///<paramname="helper"></param>
///<paramname="id">分页id</param>
///<paramname="currentPageIndex">当前页</param>
///<paramname="pageSize">分页尺寸</param>
///<paramname="recordCount">记录总数</param>
///<paramname="mode">分页模式</param>
///<returns></returns>
publicstaticstringPager(thisHtmlHelperhelper,stringid,intcurrentPageIndex,intpageSize,intrecordCount,PageModemode)
{
returnPager(helper,id,currentPageIndex,pageSize,recordCount,null,mode);
}
///<summary>
///分页
///</summary>
///<paramname="helper"></param>
///<paramname="id">分页id</param>
///<paramname="currentPageIndex">当前页</param>
///<paramname="pageSize">分页尺寸</param>
///<paramname="recordCount">记录总数</param>
///<paramname="className">分页样式</param>
///<paramname="mode">分页模式</param>
///<returns></returns>
publicstaticstringPager(thisHtmlHelperhelper,stringid,intcurrentPageIndex,intpageSize,intrecordCount,stringclassName,PageModemode)
{
returnPager(helper,id,currentPageIndex,pageSize,recordCount,null,className,mode);
}
///<summary>
///获取普通分页
///</summary>
///<paramname="currentPageIndex"></param>
///<paramname="pageSize"></param>
///<paramname="recordCount"></param>
///<returns></returns>
privatestaticstringGetNormalPage(intcurrentPageIndex,intpageSize,intrecordCount,PageModemode)
{
intpageCount=(recordCount%pageSize==0?recordCount/pageSize:recordCount/pageSize+1);
StringBuilderurl=newStringBuilder();
url.Append(HttpContext.Current.Request.Url.AbsolutePath+"?page={0}");
NameValueCollectioncollection=HttpContext.Current.Request.QueryString;
string[]keys=collection.AllKeys;
for(inti=0;i<keys.Length;i++)
{
if(keys[i].ToLower()!="page")
url.AppendFormat("&{0}={1}",keys[i],collection[keys[i]]);
}
StringBuildersb=newStringBuilder();
sb.Append("<tr><td>");
sb.AppendFormat("总共{0}条记录,共{1}页,当前第{2}页",recordCount,pageCount,currentPageIndex);
if(currentPageIndex==1)
sb.Append("<span>首页</span>");
else
{
stringurl1=string.Format(url.ToString(),1);
sb.AppendFormat("<span><ahref={0}>首页</a></span>",url1);
}
if(currentPageIndex>1)
{
stringurl1=string.Format(url.ToString(),currentPageIndex-1);
sb.AppendFormat("<span><ahref={0}>上一页</a></span>",url1);
}
else
sb.Append("<span>上一页</span>");
if(mode==PageMode.Numeric)
sb.Append(GetNumericPage(currentPageIndex,pageSize,recordCount,pageCount,url.ToString()));
if(currentPageIndex<pageCount)
{
stringurl1=string.Format(url.ToString(),currentPageIndex+1);
sb.AppendFormat("<span><ahref={0}>下一页</a></span>",url1);
}
else
sb.Append("<span>下一页</span>");
if(currentPageIndex==pageCount)
sb.Append("<span>末页</span>");
else
{
stringurl1=string.Format(url.ToString(),pageCount);
sb.AppendFormat("<span><ahref={0}>末页</a></span>",url1);
}
returnsb.ToString();
}
///<summary>
///获取数字分页
///</summary>
///<paramname="currentPageIndex"></param>
///<paramname="pageSize"></param>
///<paramname="recordCount"></param>
///<paramname="pageCount"></param>
///<paramname="url"></param>
///<returns></returns>
privatestaticstringGetNumericPage(intcurrentPageIndex,intpageSize,intrecordCount,intpageCount,stringurl)
{
intk=currentPageIndex/10;
intm=currentPageIndex%10;
StringBuildersb=newStringBuilder();
if(currentPageIndex/10==pageCount/10)
{
if(m==0)
{
k--;
m=10;
}
else
m=pageCount%10;
}
else
m=10;
for(inti=k*10+1;i<=k*10+m;i++)
{
if(i==currentPageIndex)
sb.AppendFormat("<span><fontcolor=red><b>{0}</b></font></span>",i);
else
{
stringurl1=string.Format(url.ToString(),i);
sb.AppendFormat("<span><ahref={0}>{1}</a></span>",url1,i);
}
}
returnsb.ToString();
}
}
///<summary>
///分页模式
///</summary>
publicenumPageMode
{
///<summary>
///普通分页模式
///</summary>
Normal,
///<summary>
///普通分页加数字分页
///</summary>
Numeric
}
}
html代码
<divid="pageNav"class="pageinator"> @Html.ShowPageNavigate((int)ViewData["pageindex"],(int)ViewBag.pageSize,(int)ViewBag.totalCount); </div>
控制器
shopEntitiesshop=newshopEntities();
publicActionResultIndex()
{
//IQueryable<tbl_order>order=(fromainshop.tbl_orderselecta).OrderBy(a=>a.id).Skip(10).Take(10);
//ViewData["order"]=order;
//returnView();
intpageIndex=Request["pageIndex"]==null?1:int.Parse(Request["pageIndex"]);
intpageSize=Request["pageSize"]==null?10:int.Parse(Request["pageSize"]);
inttotalCount=0;
//给前台传递分页的参数数据
ViewData["pageIndex"]=pageIndex;
//ViewData["pageSize"]=pageSize;
ViewBag.pageSize=pageSize;
//总条数
totalCount=shop.tbl_order.Count();
ViewBag.totalCount=totalCount;
//把当前页面数据发送到前台。
//ViewData.Model=db.UserInfo.ToList();
//List<tbl_order>pp=shop.tbl_order
//.OrderBy(u=>u.id)
//.Skip((pageIndex-1)*pageSize)
//.Take(pageSize).ToList();
IQueryable<tbl_order>pp=shop.tbl_order
.OrderBy(u=>u.id)
.Skip((pageIndex-1)*pageSize)
.Take(pageSize);
returnView(pp);
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。