Asp.net分页辅助方法
作者:翅膀的初衷 来源:本站原创 发布时间:2014-05-19 查看数:62128
分页是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, "<<", " < ", " > ");
}
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();
}
}
}