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); }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。