PageInfo.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace WebPageNew.HtmlPage
{
public class PageInfo
{
/// <summary>
/// 数据库中信息总条数
/// </summary>
public int TotalItems {
get;
set; }
/// <summary>
/// 每页条数
/// </summary>
public int ItemsPerPage {
get;
set; }
/// <summary>
/// 当前页
/// </summary>
public int CurrentPage {
get;
set; }
/// <summary>
/// 总页数
/// </summary>
public int TotalPages
{
get {
return (
int)Math.Ceiling((
decimal)TotalItems /
ItemsPerPage); }
}
}
}
Paging.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Text;
namespace WebPageNew.HtmlPage
{
public class Paging
{
/// <summary>
/// 最新完整分页。2013年5月5日更新,在学习老赵的UserControl中应用到。
/// </summary>
/// <param name="pageInfo"></param>
/// <param name="PageUrl">当前页面的地址</param>
/// <returns></returns>
public string MyPage(PageInfo pageInfo,
string PageUrl)
{
int Prev = pageInfo.CurrentPage -
1;
int Next = pageInfo.CurrentPage +
1;
StringBuilder result =
new StringBuilder();
//首页
string strFirst =
string.Empty;
strFirst =
"<a href='" + PageUrl +
"?PageNumber=1 '>Frist</a>";
result.Append(strFirst);
//上一页
string strPrev =
string.Empty;
if (Prev <
1)
Prev =
1;
strPrev =
"<a href='" + PageUrl +
"?PageNumber=" + Prev.ToString() +
" '>Prev</a>";
result.Append(strPrev);
//页码
int PageNumSize =
11;
int StartPage =
1;
string strPage =
string.Empty;
if (pageInfo.CurrentPage >
5)
//如果当前页面大于5
{
StartPage = pageInfo.CurrentPage -
5;
//页码开始的序号为:当前页 - 5
PageNumSize = pageInfo.CurrentPage +
5;
//页面的最后为:当前页 + 5
}
if (pageInfo.TotalPages <=
11)
//如果总页数小于11,那么设置显示的总页数为:小于11的那个页码
PageNumSize =
pageInfo.TotalPages;
if (PageNumSize >
pageInfo.TotalPages)
PageNumSize =
pageInfo.TotalPages;
//----
int startPage =
1;
int lastPage =
11;
if (pageInfo.TotalPages <=
11)
{
startPage =
1;
lastPage =
pageInfo.TotalPages;
}
else
{
if (pageInfo.CurrentPage >
5)
{
startPage = pageInfo.CurrentPage -
5;
lastPage = pageInfo.CurrentPage +
5;
if (lastPage >
pageInfo.TotalPages)
{
startPage = pageInfo.TotalPages -
10;
lastPage =
pageInfo.TotalPages;
}
}
}
//页号----------------
for (
int i = startPage; i <= lastPage; i++
)
{
if (i ==
pageInfo.CurrentPage)
strPage =
"<a class=\"selected\" href=\"" + PageUrl +
"\">" + i.ToString() +
"</a>";
else
strPage =
"<a href='" + PageUrl +
"?PageNumber=" + i.ToString() +
"'>" + i.ToString() +
"</a>";
result.Append(strPage);
}
//下一页
string strNext =
string.Empty;
if (Next >
pageInfo.TotalPages)
Next =
pageInfo.TotalPages;
strNext =
"<a href='" + PageUrl +
"?PageNumber=" + Next.ToString() +
" '>Next</a>";
result.Append(strNext);
//末页
string strLast =
string.Empty;
strLast =
"<a href='" + PageUrl +
"?PageNumber=" + pageInfo.TotalPages +
" '>Last</a>";
result.Append(strLast);
return result.ToString();
}
}
}
Default.aspx
<%@ Page Language=
"C#" AutoEventWireup=
"true" CodeBehind=
"Default.aspx.cs" Inherits=
"WebPageNew.Default" %>
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=
"http://www.w3.org/1999/xhtml">
<head runat=
"server">
<title></title>
<style type=
"text/css">
#head .title{ height:80px; background-color:#
444444;}
#Pageing A{ background-color:#
008844;
border:1px solid White;
text-
decoration:none; color:White;
padding: .1em .6em .2em .6em;}
#Pageing A.selected{ background-
color:#AA7700;}
body
{
font-
size: .85em;
font-family:
"Trebuchet MS", Verdana, Helvetica, Sans-
Serif;
color: #232323;
background-
color: #fff;
}
</style>
</head>
<body>
<form id=
"form1" runat=
"server">
<div>
<asp:DataList ID=
"DataList1" runat=
"server">
</asp:DataList>
<div id=
"Pageing" style=
"padding-bottom:10px;">
<%= str %>
</div>
</div>
</form>
</body>
</html>
Default.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using WebPageNew.HtmlPage;
namespace WebPageNew
{
public partial class Default : System.Web.UI.Page
{
protected string str =
"";
protected void Page_Load(
object sender, EventArgs e)
{
//设置page信息
string strPageNum = Request.QueryString[
"PageNumber"];
if (
string.IsNullOrEmpty(strPageNum))
strPageNum =
"1";
#region 设置分页信息
//数据库中获取消息总条数TotalItems
//设置每页条数
//设置当前页
PageInfo pageinfo =
new PageInfo
{
CurrentPage =
Convert.ToInt32(strPageNum),
ItemsPerPage =
11,
TotalItems =
200
};
#endregion
#region 数据绑定
//根据pageinfo请求数据库数据,绑定到datalist
//当前页 pageinfo.CurrentPage
//每页数据条数 pageinfo.ItemPerPage
//计算出取 n -- n+10条
#endregion
#region 输出page
Paging p =
new Paging();
str = p.MyPage(pageinfo,
"http://localhost:5867/Default.aspx");
#endregion
}
}
}
实例下载
转载于:https://www.cnblogs.com/wupeiqi/archive/2013/05/06/3062036.html