📄 pager.cs
字号:
using System;
using System.Data;
using System.Data.SqlClient;
namespace Datamodel
{
/* ****************************************************
重庆杰诺软件开发工作室
QQ:83898700
EMAIL:gimao@163.com
url:www.gisii.com
***************************************************** */
/// <summary>
/// Pager 的摘要说明。
/// </summary>
public class Pager
{
private int _CurrentPage;//当前页
private int _Maxnum;//最大条数
private int _RecordCount;//总的记录数
public string _Sql;//SQL
public string Sql;
private string _Urltj;//连接信息
private DBManager my;
private static string Btn_First="<font face=webdings>9</font>";//'定义第一页按钮显示样式|<<
private static string Btn_Prev="<font face=webdings>7</font>";// '定义前一页按钮显示样式<<
private static string Btn_Next="<font face=webdings>8</font>";// '定义下一页按钮显示样式>>
private static string Btn_Last="<font face=webdings>:</font>";// '定义最后一页按钮显示样式.>>|
/// <summary>
/// 页面显示多少条记录
/// </summary>
public int PageSize
{
get
{
return _Maxnum;
}
set
{
_Maxnum=value;
}
}
/// <summary>
/// 当前页
/// </summary>
public int PageCurrent
{
get
{
return _CurrentPage;
}
set
{
_CurrentPage=value;
}
}
/// <summary>
/// 总有多少页
/// </summary>
public int PageCount
{
get
{
return ((_RecordCount+_Maxnum)-1)/_Maxnum;
}
}
/// <summary>
/// 条件
/// </summary>
public string Url_tj
{
get
{
return _Urltj;
}set
{
_Urltj=value;
}
}
/// <summary>
/// 总条数
/// </summary>
public void RecordCount()
{
string sql="select Count(*) as co from ("+_Sql+") A";
CreateDb mydb = new CreateDb();
my = mydb.Createdb();
my.OpenConn();
IDataReader Rs=my.ExecuteCreateReader(my.ExeCommand(sql));
if(Rs.Read())
{
_RecordCount=Int32.Parse(Rs["co"].ToString());
}
else
{
_RecordCount=0;
}
Rs.Close();
my.CloseConn();
}
/// <summary>
/// 返回数据集
/// </summary>
/// <returns></returns>
public IDataReader Datainit()
{
string sql=string.Empty;
sql="SELECT TOP "+_Maxnum+" * FROM ("+_Sql+") T WHERE T.id NOT IN (SELECT TOP "+_Maxnum*(_CurrentPage-1)+" id FROM ("+_Sql+") T9 ORDER BY id desc) ORDER BY id desc";
this.Sql=sql;
CreateDb mydb = new CreateDb();
my = mydb.Createdb();
try
{
my.OpenConn();
return my.ExecuteCreateReader(my.ExeCommand(sql));
}
catch(Exception e)
{
throw (e);
}
}
public Pager(string strSQL)
{
this._Sql=strSQL;
}
/// <summary>
/// 页面连接
/// </summary>
/// <returns></returns>
public string ShowPageinfo()
{
if(PageCount>0)
{
return "页次:"+_CurrentPage+"/"+PageCount+"页 记录:"+_RecordCount+"条 每页:"+_Maxnum+"条";
}
else
{
return "";
}
}
/// <summary>
/// 关闭数据连接
/// </summary>
public void CloseConn()
{
my.CloseConn();
}
/// <summary>
/// 分页信息
/// </summary>
/// <returns></returns>
public string showintstats()
{
string stats;
if(PageCount>0)
{
if(_CurrentPage==1)
{
stats=Btn_First;
}
else
{
if(_Urltj!="")
{
stats="<a href=?Page=1"+_Urltj+">"+Btn_First+"</a>";
}
else
{
stats="<a href=?Page=1>"+Btn_First+"</a>";
}
}
int pageGroup=(_CurrentPage-1)/10;
if(pageGroup*10>0)
{
if(_Urltj!="")
{
stats+="<a href=?Page="+pageGroup*10+_Urltj+">"+Btn_Prev+"</a>";
}
else
{
stats+="<a href=?Page="+pageGroup*10+">"+Btn_Prev+"</a>";
}
}
for(int i=pageGroup*10+1;i<=pageGroup*10+10;i++)
{
if(i==_CurrentPage)
{
stats+="<font color=red>["+i+"]</font>";
}
else
{
if(_Urltj!="")
{
stats+="<a href=?Page="+i+_Urltj+">["+i+"]</a>";
}
else
{
stats+="<a href=?Page="+i+">["+i+"]</a>";
}
}
if(i==PageCount)
{
break;
}
}
if((pageGroup*10+10)<PageCount)
{
if(_Urltj!="")
{
stats+="<a href=?Page="+(pageGroup*10+10+1)+_Urltj+">"+Btn_Next+"</a>";
}
else
{
stats+="<a href=?Page="+(pageGroup*10+10+1)+">"+Btn_Next+"</a>";
}
}
if(_CurrentPage==PageCount)
{
stats+=Btn_Last;
}
else
{
if(_Urltj!="")
{
stats+="<a href=?Page="+PageCount+_Urltj+">"+Btn_Last+"</a>";
}
else
{
stats+="<a href=?Page="+PageCount+">"+Btn_Last+"</a>";
}
}
}
else
{
stats="";
}
return stats;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -