⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 requestpager.cs

📁 1、用SQL查询器打开install目录下的dooogo.sql运行之后创建数据库dooogo。 2、然后打开web.config修改 <DbProvider type="Club.Fram
💻 CS
字号:
//Copyright (C) 2006 dooogo.com
//Author:benben
//www.aspxclub.com
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.Data;
using Club.Framework.Data;
using Club.Framework;
namespace Club.Common
{
	/// <summary>
	/// 分页控件
	/// </summary>
	[ToolboxData("<{0}:GetRequestPage runat=server></{0}:GetRequestPage>")]
	public class GetRequestPage : System.Web.UI.WebControls.Panel,System.Web.UI.INamingContainer
	{
		#region 属性
		private Control dataList=null;
		private HyperLink first=null;
		private HyperLink end = null;
		private HyperLink next=null;
		private HyperLink pre = null;
		private Label showCount=null;
		/// <summary>
		/// 页面索引
		/// </summary>
		public int PageIndex
		{
			get
			{
				if(this.ViewState["PageIndex"]==null)
				{
					return 1;
				}
				return (int)this.ViewState["PageIndex"];
			}
			set
			{
				this.ViewState["PageIndex"]=value;
			}
		}
		public string TableName
		{
			get
			{
				if(this.ViewState["TableName"]==null)
				{
					return string.Empty;
				}
				return (string)this.ViewState["TableName"];
			}
			set
			{
				this.ViewState["TableName"]=value;
			}
		}
		public string Fields
		{
			get
			{
				if(this.ViewState["Fields"]==null)
				{
					return string.Empty;
				}
				return (string)this.ViewState["Fields"];
			}
			set
			{
				this.ViewState["Fields"]=value;
			}
		}
		public string WhereString
		{
			get
			{
				if(this.ViewState["WhereString"]==null)
				{
					return string.Empty;
				}
				return (string)this.ViewState["WhereString"];
			}
			set
			{
				this.ViewState["WhereString"]=value;
			}
		}
		/// <summary>
		/// 页面地址格式化字符串
		/// </summary>
		public string PageUrlFormatString
		{
			get
			{
				if(this.ViewState["PageUrlFormatString"]==null)
				{
					return "?PageIndex={0}";
				}
				return (string)this.ViewState["PageUrlFormatString"];
			}
			set
			{
				this.ViewState["PageUrlFormatString"]=value;
			}
		}
		/// <summary>
		/// 统计格式字符
		/// </summary>
		public string CountFormatString
		{
			get
			{
				if(this.ViewState["CountFormatString"]==null)
				{
					return "共{0}条 {1}条/页 {2}/{3}页";
				}
				return (string)this.ViewState["CountFormatString"];
			}
			set
			{
				this.ViewState["CountFormatString"]=value;
			}
		}
		/// <summary>
		/// 排列顺序,默认为降序
		/// </summary>
		public bool OrderType
		{
			get
			{
				if(this.ViewState["OrderType"]==null)
				{
					return true;
				}
				return (bool)this.ViewState["OrderType"];
			}
			set
			{
				this.ViewState["OrderType"]=value;
			}
		}

		/// <summary>
		/// 排列字段
		/// </summary>
		public string OrderField
		{
			get
			{
				if(this.ViewState["OrderField"]==null)
				{
					return string.Empty;
				}
				return (string)this.ViewState["OrderField"];
			}
			set
			{
				this.ViewState["OrderField"]=value;
			}
		}
		/// <summary>
		/// 页面统计
		/// </summary>
		public int PageCount
		{
			get
			{
				if((this.RecordCount%this.PageSize)>0)
				{
					return (this.RecordCount/this.PageSize)+1;
				}
				else
				{
					return  this.RecordCount/this.PageSize;
				}
			}
		}
		/// <summary>
		/// 记录统计
		/// </summary>
		public int RecordCount
		{
			get
			{
				if(this.ViewState["RecordCount"]==null)
				{
					return 0;
				}
				return (int)this.ViewState["RecordCount"];
			}
			set
			{
				this.ViewState["RecordCount"]=value;
			}
		}
		/// <summary>
		/// 页面显示数
		/// </summary>
		public int PageSize
		{
			get
			{
				if(this.ViewState["PageSize"]==null)
				{
					return 10;
				}
				return (int)this.ViewState["PageSize"];
			}
			set
			{
				this.ViewState["PageSize"]=value;
			}
		}
		/// <summary>
		/// 按钮数
		/// </summary>
		public int PageButtonCount
		{
			get
			{
				if(this.ViewState["PageButtonCount"]==null)
				{
					return 10;
				}
				return (int)this.ViewState["PageButtonCount"];
			}
			set
			{
				this.ViewState["PageButtonCount"]=value;
			}
		}
		/// <summary>
		/// 数字按钮格式化字符串
		/// </summary>
		public string NumberButtonFormatString
		{
			get
			{
				if(this.ViewState["NumberButtonFormatString"]==null)
				{
					return " {0} ";
				}
				return (string)this.ViewState["NumberButtonFormatString"];
			}
			set
			{
				this.ViewState["NumberButtonFormatString"]=value;
			}
		}
		/// <summary>
		/// 是否DataSet直接分页
		/// </summary>
		public bool IsDataSetPage
		{
			get
			{
				if(this.ViewState["IsDataSetPage"]==null)
				{
					return false;
				}
				return (bool)this.ViewState["IsDataSetPage"];
			}
			set
			{
				this.ViewState["IsDataSetPage"]=value;
			}
		}
		/// <summary>
		/// 需分页的数据集
		/// </summary>
		public DataSet DataSource
		{
			get
			{
				if(this.ViewState["DataSource"]==null)
				{
					return null;
				}
				return (DataSet)this.ViewState["DataSource"];
			}
			set
			{
				this.ViewState["DataSource"]=value;
			}
		}
		#endregion
		public GetRequestPage() 
		{
			//base.BackColor = Color.WhiteSmoke;
			base.Width = new Unit("100%");
		}
		#region 绑定数据
		protected override void OnDataBinding(EventArgs e)
		{
			base.OnDataBinding (e);
			if(Page.Request.QueryString["PageIndex"]!=null)
			{
				this.PageIndex = int.Parse(Page.Request.QueryString["PageIndex"]);
			}
			if(this.FindControl("dataList")!=null)
			{
				this.dataList=this.FindControl("dataList");
			}
			if(this.IsDataSetPage)
			{
				GetSqlDsBind();
			}
			else
			{
				GetMyDsBind();
			}
			GetMyButton();
		}

		/// <summary>
		/// 
		/// </summary>
		protected override void CreateChildControls()
		{
			base.CreateChildControls ();

		}
		private void GetSqlDsBind()
		{
			PagedDataSource objPds = new PagedDataSource();
			objPds.DataSource = this.DataSource.Tables[0].DefaultView;
			objPds.AllowPaging = true;
			objPds.PageSize =this.PageSize;
			objPds.CurrentPageIndex =this.PageIndex-1;
			this.RecordCount=objPds.DataSourceCount;

			if(this.dataList!=null)
			{
				if(this.dataList is BaseDataList)
				{
					BaseDataList _baseDataList=(BaseDataList)this.dataList;
					_baseDataList.DataSource= objPds;
					_baseDataList.DataBind();
				}
				else if(this.dataList is Repeater)
				{
					Repeater _repeater=(Repeater)this.dataList;
					_repeater.DataSource= objPds;
					_repeater.DataBind();
				}
				else
				{
					throw new System.Exception("列表控件类型不正确!请重新设置内部ID为dataList的列表控件!");
				}
			}
			else
			{
				throw new System.Exception("没有找到内部ID为dataList的列表控件!");
			}
		}
		private void GetMyDsBind()
		{
			int rowCount;
			this.DataSource=Globals.DbProvider.SelectPageByDataSet(this.TableName,this.Fields,this.OrderField,this.PageSize,this.PageIndex,true,this.OrderType,this.WhereString,out rowCount);
			this.RecordCount=rowCount;
			if(this.dataList!=null)
			{
				if(this.dataList is BaseDataList)
				{
					BaseDataList _baseDataList=(BaseDataList)this.dataList;
					_baseDataList.DataSource= this.DataSource;
					_baseDataList.DataBind();
				}
				else if(this.dataList is Repeater)
				{
					Repeater _repeater=(Repeater)this.dataList;
					_repeater.DataSource= this.DataSource;
					_repeater.DataBind();
				}
				else
				{
					throw new System.Exception("列表控件类型不正确!请重新设置内部ID为dataList的列表控件!");
				}
			}
			else
			{
				throw new System.Exception("没有找到内部ID为dataList的列表控件!");
			}

		}

		#endregion

		#region 隐藏标记
		public override void RenderBeginTag(System.Web.UI.HtmlTextWriter writer) {}
		public override void RenderEndTag(System.Web.UI.HtmlTextWriter writer) {}
		#endregion

		#region 创建按钮
		private void GetMyButton()
		{
			if(this.FindControl("FirstLink")!=null)
			{
				this.first=(HyperLink)this.FindControl("FirstLink");
				this.first.NavigateUrl = string.Format(this.PageUrlFormatString,"1");
				if(this.PageIndex==1)
				{
					this.first.Enabled=false;
				}
				else
				{
					this.first.Enabled=true;
				}
			}
			if(this.FindControl("EndLink")!=null)
			{
				this.end=(HyperLink)this.FindControl("EndLink");
				this.end.NavigateUrl = string.Format(this.PageUrlFormatString,this.PageCount);
				if(this.PageIndex>=this.PageCount)
				{
					this.end.Enabled=false;
				}
				else
				{
					this.end.Enabled=true;
				}
			}
			if(this.FindControl("PreLink")!=null)
			{
				this.pre=(HyperLink)this.FindControl("PreLink");
				this.pre.NavigateUrl = string.Format(this.PageUrlFormatString,this.PageIndex>1?this.PageIndex-1:this.PageIndex);
			}
			if(this.PageIndex==1)
			{
				this.pre.Enabled=false;
			}
			else
			{
				this.pre.Enabled=true;
			}
			if(this.FindControl("IndexLink")!=null)
			{
				Control indexButton=this.FindControl("IndexLink");
				//indexButton.Controls.Clear();
				int startIndex;
				int endIndex;
				int currentButtonCount = this.PageButtonCount-1;
				startIndex = this.PageIndex-(currentButtonCount/2);
				startIndex = startIndex>0?startIndex:1;
				endIndex = this.PageIndex+(currentButtonCount/2);
				if((endIndex-startIndex)<currentButtonCount)
				{
					endIndex = startIndex+currentButtonCount;
				}
				endIndex = endIndex<this.PageCount?endIndex:this.PageCount;
				if((endIndex-startIndex)<currentButtonCount)
				{
					startIndex= endIndex - currentButtonCount;
				}
				startIndex = startIndex>0?startIndex:1;
				if(indexButton.Controls.Count==0)
				{
					for(int i=startIndex;i<=endIndex;i++)
					{
						HyperLink lb=new HyperLink();
						lb.Text = string.Format(NumberButtonFormatString,i.ToString());
						lb.NavigateUrl = string.Format(this.PageUrlFormatString,i);
						if(this.PageIndex==i)
						{
							lb.Enabled=false;
							lb.CssClass="a_curr";
						}
						indexButton.Controls.Add(lb);
					}
				}
			}
			if(this.FindControl("NextLink")!=null)
			{
				this.next=(HyperLink)this.FindControl("NextLink");
				this.next.NavigateUrl = string.Format(this.PageUrlFormatString,this.PageIndex<this.PageCount?this.PageIndex+1:this.PageIndex);
			}
			if(this.PageIndex>=this.PageCount)
			{
				this.next.Enabled=false;
			}
			else
			{
				this.next.Enabled=true;
			}
			if(this.FindControl("ShowCount")!=null)
			{
				this.showCount = (Label)this.FindControl("ShowCount");
				this.showCount.Text = string.Format(this.CountFormatString,this.RecordCount,this.PageSize,this.PageIndex,this.PageCount);
			}
		}
		#endregion
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -