using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.OleDb;
using System.Configuration;
using System.Text;
namespace WG.PagingBlocks
{
/// <summary>
/// PageClas 的摘要说明
/// </summary>
public class PageClass
{
//每页显示多少个
private int _pagesize = 10;
//页码页的索引
private int _pageindex;
//页数
private int _pagecount;
//记录数
//private int _count;
private int _recordcount;
/// <summary>
/// 分页用到的DataSet
/// 通过DataSet数据来分析和求出 页大小,记录总数等..
/// 类初始化是得到值.
/// </summary>
private DataSet PagingDs = new DataSet();
/// <summary>
/// 页的大小 每页显示多少个
/// </summary>
public int PageSize
{
get
{
return _pagesize;
}
set
{
if (value > 0)
{
_pagesize = value;
}
else
{
_pagesize = 10;
}
}
}
/// <summary>
/// 页的索引
/// </summary>
public int PageIndex
{
get
{
return _pageindex;
}
set
{
if (value > 0)
{
_pageindex = value;
}
else
{
_pageindex = 1;
}
}
}
/// <summary>
/// 页的总数
/// </summary>
public int PageCount
{
get
{
return _pagecount;
}
set
{
_pagecount = value;
}
}
/// <summary>
/// 记录总数
/// </summary>
public int RecordCount
{
get
{
return _recordcount;
}
set
{
_recordcount = value;
}
}
public PageClass(DataSet oDs)
{
PagingDs = oDs;
weigeng();
}
/// <summary>
/// TODO: 在此处添加构造函数逻辑
/// </summary>
/// <param name="oDs"></param>
/// <param name="PageSize">每页显示多少</param>
/// <param name="Desc">排序</param>
public PageClass(DataSet oDs, int pagesize)
{
PagingDs = oDs;
PageSize = pagesize;
weigeng();
}
/// <summary>
/// 获得当前页/总页
/// </summary>
/// <returns></returns>
public string getIndexPageCount()
{
return (_pageindex.ToString() + "/" + _pagecount.ToString()).ToString();
}
private void weigeng()
{
//获得记录总数
RecordCount = PagingDs.Tables[0].Rows.Count;
if (RecordCount == 0)
{
PageCount = 0;
//PageIndex = 0;
}
else
{
// y 标识模除 就值余数
// z 商的值 页的数
int y = RecordCount % PageSize;
int z = RecordCount / PageSize;
if (y == 0)
{
PageCount = z;
//PageIndex = 1;
}
else if (y > 0)
{
PageCount = z + 1;
//PageIndex = 1;
}
}
}
/// <summary>
/// 应用与sql
/// </summary>
/// <param name="pageindex">页的索引</param>
/// <param name="oDa">SqlDataAdapter</param>
/// <returns>返回 dataset的值</returns>
public DataSet getPageList(int pageindex, SqlDataAdapter oDa)
{
PageIndex = pageindex;
DataSet oDsNB = new DataSet();
oDa.Fill(oDsNB, int.Parse((PageSize * (int.Parse(PageIndex.ToString()) - 1)).ToString()), PageSize, "wg");
return oDsNB;
}
/// <summary>
/// 应用与oledb
/// </summary>
/// <param name="pageindex">页的索引</param>
/// <param name="oDa">SqlDataAdapter</param>
/// <returns>返回 dataset的值</returns>
public DataSet getPageList(int pageindex, OleDbDataAdapter oDa)
{
PageIndex = pageindex;
DataSet oDsNB = new DataSet();
oDa.Fill(oDsNB, int.Parse((PageSize * (int.Parse(PageIndex.ToString()) - 1)).ToString()), PageSize, "wg");
return oDsNB;
}
/// <summary>
/// 显示分页样式 1 --首页 上一页 下一页 末页
/// </summary>
/// <param name="pageindex">页的索引</param>
/// <param name="pagecount">页数</param>
/// <returns>分页的字符串</returns>
public static string PagingTwo(int pageindex, int pagecount)
{
StringBuilder paging = new StringBuilder();
if (pageindex <= 1 && pagecount <= 1 && pageindex == pagecount)
{
paging.Append("<span class=/"pageclass-wg/"><a href=/"javascript:void(0)/">首 页</a></span>");
paging.Append("<span class=/"pageclass-wg/"><a href=/"javascript:void(0)/">上一页</a></span>");
paging.Append("<span class=/"pageclass-wg/"><a href=/"javascript:void(0)/">下一页</a></span>");
paging.Append("<span class=/"pageclass-wg/"><a href=/"javascript:void(0)/">末 页</a></span>");
}
else if (pageindex == 1 && pagecount != pageindex)
{
paging.Append("<span class=/"pageclass-wg/"><a href=/"javascript:void(0)/">首 页</a></span>");
paging.Append("<span class=/"pageclass-wg/"><a href=/"javascript:void(0)/">上一页</a></span>");
paging.Append("<span class=/"pageclass-wg/"><a href=/"?index=" + (pageindex + 1).ToString() + "/">下一页</a></span>");
paging.Append("<span class=/"pageclass-wg/"><a href=/"?index=" + pagecount.ToString() + "/">末 页</a></span>");
}
else if (pageindex == pagecount && pageindex > 1)
{
paging.Append("<span class=/"pageclass-wg/"><a href=/"?index=1/">首 页</a></span>");
paging.Append("<span class=/"pageclass-wg/"><a href=/"?index=" + (pageindex - 1).ToString() + "/">上一页</a></span>");
paging.Append("<span class=/"pageclass-wg/"><a href=/"javascript:void(0)/">下一页</a></span>");
paging.Append("<span class=/"pageclass-wg/"><a href=/"javascript:void(0)/">末 页</a></span>");
}
else
{
paging.Append("<span class=/"pageclass-wg/"><a href=/"?index=1/">首 页</a></span>");
paging.Append("<span class=/"pageclass-wg/"><a href=/"?index=" + (pageindex - 1).ToString() + "/">上一页</a></span>");
paging.Append("<span class=/"pageclass-wg/"><a href=/"?index=" + (pageindex + 1).ToString() + "/">下一页</a></span>");
paging.Append("<span class=/"pageclass-wg/"><a href=/"?index=" + pagecount.ToString() + "/">末 页</a></span>");
}
return paging.ToString();
}
/// <summary>
/// 模仿google的分页
/// </summary>
/// <param name="pageindex">页的索引</param>
/// <param name="pagecount">页数</param>
/// <returns>分页的字符串</returns>
public static string PagingOne(int pageindex, int pagecount)
{
StringBuilder fengye = new StringBuilder();
if (pageindex != 1)
{
fengye.Append("<span class=/"pageclass-up/"><a href=/"?index=" + (pageindex - 1).ToString() + "/">上一页</a></span>");
}
if (pageindex <= 11)
{
int j = pagecount >= pageindex + 9 ? pageindex + 9 : pagecount;
for (int i = 1; i <= j; i++)
{
if (pageindex == i)
{
fengye.Append("<span class=/"pageclass-wg/">" + i.ToString() + "</span>");
}
else
{
fengye.Append("<span class=/"pageclass-wg/"><a href=/"?index=" + i.ToString() + "/">" + i.ToString() + "</a></span>");
}
}
}
else
{
int j = pagecount >= pageindex + 9 ? pageindex + 9 : pagecount;
for (int i = j - 20; i <= j; i++)
{
if (pageindex == i)
{
fengye.Append("<span class=/"pageclass-wg/">" + i.ToString() + "</span>");
}
else
{
fengye.Append("<span class=/"pageclass-wg/"><a href=/"?index=" + i.ToString() + "/">" + i.ToString() + "</a></span>");
}
}
}
if (pagecount != pageindex)
{
fengye.Append("<span class=/"pageclass-down/"><a href=/"?index=" + (pageindex + 1).ToString() + "/">下一页</a></span>");
}
return fengye.ToString();
}
}
}