MVC分页

来源:互联网 发布:热饮品 知乎 编辑:程序博客网 时间:2024/06/05 08:30

HTML

<div>@Html.Paging(Model.PageIndex,Model.PageSize,Model.TotalItem,"Index")</div>


 后台

public static MvcHtmlString Paging(this HtmlHelper html,int pageIndex,int pageSize,int totalCount,string actionName)         {            var sb = new StringBuilder();            int pageCount = (int)Math.Ceiling(totalCount / (double)pageSize);//获得总页数            RouteValueDictionary linkDictionary=new RouteValueDictionary ();            if(actionName==null){//查看是否存在访问页面、没有-保存到RouteValueDictionary                linkDictionary.Add("action",actionName);            }            // Home/Index?page=1            //以key:value形式存值{controller},{action},{page}            if (pageIndex > 1)            {                sb.Append(CreatePageLink("<上一页", pageIndex - 1,linkDictionary,html));            }            else            {                sb.Append("<span><上一页</span>");            }            for (int i = 1; i <= pageCount; i++)            {                if (i == pageIndex)                {                    sb.Append("<span> ["+i+"] </span>");                }                else                {                    sb.Append(CreatePageLink(i.ToString(), i, linkDictionary, html));                }            }            if (pageIndex < pageCount)            {                sb.Append(CreatePageLink("下一页>", pageIndex + 1, linkDictionary, html));            }            else            {                sb.Append("<span>下一页></span>");            }            return MvcHtmlString.Create(sb.ToString());        }        public static string CreatePageLink(string LinkText, int pageIndex,RouteValueDictionary rvDictionary,HtmlHelper html)        {            RouteValueDictionary linkDictionary =new RouteValueDictionary( rvDictionary);            linkDictionary.Add("page",pageIndex);            var virtualPath = RouteTable.Routes.GetVirtualPathForArea(html.ViewContext.RequestContext, linkDictionary);            //获得url virtualPath=/Home/Index?page=1            return "<a href='" + virtualPath.VirtualPath + "'> "+LinkText+" </a>";        }


 

0 0
原创粉丝点击