Asp.net分页辅助方法

翅膀的初衷

发表于2014-05-19 22:11:02

分页是Web中最常用的功能之一,一般有数据分页与内容分页二种!

数据分页是指数据行数太多,一个页面显示不下时,进行多个页面显示,是最常见的一种形式,同时也避免一次性大量加载数据给服务器带来无法承受的负荷。

而内容分页一般数据都保存一某一行数据的某一例中,不存在数据库优化方面的处理。内容分页仅仅是出于用户体优化(内容太长等)及运营方面(增加PV,增加页面广告的展示量等)的考虑进行的处理。

本文讨论的是第一种情形!内容式分页将在我们下一篇文章进行讨论,欢迎大家关注!

首先我们先在数据库中进行分页处理,关于常用的数据库分页方式,大家可查看:http://www.jiniannet.com/Article/I11404104607998

后端进行分页处理后,我们前端还需要进行分页显示处理,比如下一页,下一页,第一页,最后一页等内容,而这些处理,我们可以自定义我循环:

 

using System; using System.Collections.Generic; using System.Text; namespace JinianNet.Web { public class PageLinker { public static string GetActionLinker(string HomePagerURL, string PagerPreURL, string PagerNextURL) { return GetActionLinker(HomePagerURL, PagerPreURL, PagerNextURL, "&lt;&lt;", " &lt; ", " &gt; "); } public static string GetActionLinker(string HomePagerURL, string PagerPreURL, string PagerNextURL, string PagerFirstName, string PagerPreName, string PagerNextName) { System.Text.StringBuilder Result = new System.Text.StringBuilder(); if (string.IsNullOrEmpty(HomePagerURL)) { Result.Append("<span>"); Result.Append(PagerFirstName); Result.Append("</span>"); } else { Result.Append("<a href=\""); Result.Append(HomePagerURL); Result.Append("\">"); Result.Append(PagerFirstName); Result.Append("</a>"); } if (string.IsNullOrEmpty(PagerPreURL)) { Result.Append("<span>"); Result.Append(PagerPreName); Result.Append("</span>"); } else { Result.Append("<a href=\""); Result.Append(PagerPreURL); Result.Append("\">"); Result.Append(PagerPreName); Result.Append("</a>"); } if (string.IsNullOrEmpty(PagerNextURL)) { Result.Append("<span>"); Result.Append(PagerNextName); Result.Append("</span>"); } else { Result.Append("<a href=\""); Result.Append(PagerNextURL); Result.Append("\">"); Result.Append(PagerNextName); Result.Append("</a>"); } return Result.ToString(); } /// <summary> /// 通用方法分页 /// </summary> /// <param name="HomePagerURL">首页URL可选 例:List.aspx</param> /// <param name="PagerURL">URL,必填,格式如:List.aspx?Page={0}</param> /// <param name="PagerCur">当前页</param> /// <param name="PagerFirstName">第一页名称</param> /// <param name="PagerPreName">上一页名称</param> /// <param name="PagerNextName">下一页名称</param> /// <returns></returns> public static string GetPageLinker(string HomePagerURL, string PagerURL, int PagerCur, string PagerFirstName, string PagerPreName, string PagerNextName, bool IsLast) { System.Text.StringBuilder Result = new System.Text.StringBuilder(); if (PagerCur < 1) { PagerCur = 1; } if (PagerCur == 1) { Result.Append("<span>"); Result.Append(PagerFirstName); Result.Append("</span> <span>"); Result.Append(PagerPreName); Result.Append("</span>"); } else { if (string.IsNullOrEmpty(HomePagerURL)) { Result.Append("<a href=\""); Result.AppendFormat(PagerURL, "1"); Result.AppendFormat("\">{0}</a>", PagerFirstName); } else { Result.AppendFormat("<a href=\"{0}\">{1}</a>", HomePagerURL, PagerFirstName); } Result.Append(" <a href=\""); Result.AppendFormat(PagerURL, PagerCur - 1); Result.AppendFormat("\">{0}</a>", PagerPreName); } Result.Append(" <a href=\""); Result.AppendFormat(PagerURL, PagerCur + 1); Result.AppendFormat("\">{0}</a>", PagerNextName); return Result.ToString(); } /// <summary> /// 通用方法分页 /// </summary> /// <param name="HomePagerURL">首页URL可选 例:List.aspx</param> /// <param name="PagerURL">URL,必填,格式如:List.aspx?Page={0}</param> /// <param name="PagerStep">步长</param> /// <param name="PagerCur">当前页</param> /// <param name="PagerTotal">总记录条数</param> /// <param name="PagerSize">每页显示的数量</param> /// <param name="PagerFirstName">第一页名称</param> /// <param name="PagerPreName">上一页名称</param> /// <param name="PagerNextName">下一页名称</param> /// <param name="PagerLastName">最后一页名称</param> /// <returns></returns> public static string GetPageLinker(string HomePagerURL, string PagerURL, int PagerStep, int PagerCur, int PagerTotal, int PagerSize, string PagerFirstName, string PagerPreName, string PagerNextName, string PagerLastName) { int MiddleNumber; int TotalPage; int i; System.Text.StringBuilder Result = new System.Text.StringBuilder(); MiddleNumber = (int)Math.Round((double)(PagerStep / 2), 0); if ((PagerTotal % PagerSize) != 0) { TotalPage = (int)Math.Round((double)(PagerTotal / PagerSize), 0) + 1; } else { TotalPage = (int)Math.Round((double)(PagerTotal / PagerSize), 0); } if (PagerCur > TotalPage) { PagerCur = TotalPage; } if (PagerCur < 1) { PagerCur = 1; } if (PagerCur == 1) { Result.Append("<span>"); Result.Append(PagerFirstName); Result.Append("</span> <span>"); Result.Append(PagerPreName); Result.Append("</span>"); } else { if (string.IsNullOrEmpty(HomePagerURL)) { Result.Append("<a href=\""); Result.AppendFormat(PagerURL, "1"); Result.AppendFormat("\">{0}</a>", PagerFirstName); } else { Result.AppendFormat("<a href=\"{0}\">{1}</a>", HomePagerURL, PagerFirstName); } Result.Append(" <a href=\""); Result.AppendFormat(PagerURL, PagerCur - 1); Result.AppendFormat("\">{0}</a>", PagerPreName); } if (TotalPage <= PagerStep) { for (i = 1; i <= TotalPage; i++) { if (i == PagerCur) { Result.AppendFormat(" <span>{0}</span>", i); } else { Result.Append(" <a href=\""); Result.AppendFormat(PagerURL, i); Result.AppendFormat("\">{0}</a>", i); } } } else { if (PagerCur <= MiddleNumber) { for (i = 1; i <= PagerCur; i++) { if (i == PagerCur) { Result.AppendFormat(" <span>{0}</span>", i); } else { Result.Append(" <a href=\""); Result.AppendFormat(PagerURL, i); Result.AppendFormat("\">{0}</a>", i); } } for (i = PagerCur + 1; i <= PagerStep; i++) { Result.Append(" <a href=\""); Result.AppendFormat(PagerURL, i); Result.AppendFormat("\">{0}</a>", i); } } else { for (i = (PagerCur - MiddleNumber + 1); i <= PagerCur; i++) { if (i == PagerCur) { Result.AppendFormat(" <span>{0}</span>", i); } else { Result.Append(" <a href=\""); Result.AppendFormat(PagerURL, i); Result.AppendFormat("\">{0}</a>", i); } } if ((PagerCur + MiddleNumber - PagerStep) < TotalPage) { for (i = PagerCur + 1; i <= PagerCur + PagerStep - MiddleNumber; i++) { if (i <= TotalPage) { Result.Append(" <a href=\""); Result.AppendFormat(PagerURL, i); Result.AppendFormat("\">{0}</a>", i); } } } else { for (i = PagerCur + 1; i <= TotalPage; i++) { if (i <= TotalPage) { Result.Append(" <a href=\""); Result.AppendFormat(PagerURL, i); Result.AppendFormat("\">{0}</a>", i); } } } } } if (PagerCur == TotalPage || TotalPage == 0) { Result.AppendFormat(" <span>{0}</span> <span>{1}</span>", PagerNextName, PagerLastName); } else { Result.Append(" <a href=\""); Result.AppendFormat(PagerURL, PagerCur + 1); Result.AppendFormat("\">{0}</a>", PagerNextName); Result.Append(" <a href=\""); Result.AppendFormat(PagerURL, TotalPage); Result.AppendFormat("\">{0}</a>", PagerLastName); } return Result.ToString(); } } }