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

📄 datagridnavigation.ascx.cs

📁 用vs2005写的一个生产任务管理系统。数据的统计和综合查询是主要功能
💻 CS
字号:
namespace ZHENGYI {
	using System; 
	using System.Data;
	using System.Drawing;
	using System.Web;
	using System.Web.UI.WebControls;
	using System.Web.UI.HtmlControls;


	/// <summary>
	///	实现DataGrid控件的分页显示
	/// </summary>

	public delegate void BindDataDelegate();//事件委托

	public partial  class DataGridNavigation : System.Web.UI.UserControl {
		protected System.Web.UI.WebControls.Button Go;
		
		private BindDataDelegate BindData;
		private DataGrid _dg;
//要操作的DataGrid控件
		private int pagesize=1;//默认的分页数

		#region Web Form Designer generated code
		override protected void OnInit(EventArgs e) {
			//
			// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		///		设计器支持所需的方法 - 不要使用
		///		代码编辑器修改此方法的内容。
		/// </summary>
		private void InitializeComponent() {						
			this.Next.Click += new System.Web.UI.ImageClickEventHandler(this.Next_Click);
			this.Lastly.Click += new System.Web.UI.ImageClickEventHandler(this.Lastly_Click);
			this.ImageButton1.Click += new System.Web.UI.ImageClickEventHandler(this.Go_Click);

		}
		#endregion
	

		protected void Page_Load(object sender, System.EventArgs e) {
			
		}

		
		/// <summary>
		/// 主方法
		/// </summary>
		/// <param name="adg">DataGrid控件名</param>
		/// <param name="NewBind">数据绑定事件委托</param>
		/// <param name="iPageSize">每页显示数</param>
		public void SetTarget(DataGrid adg,BindDataDelegate NewBind,int iPageSize)	{
			_dg=adg;
			BindData=new BindDataDelegate(NewBind);

			this.First.Click+= new System.Web.UI.ImageClickEventHandler(this.NavigationButton_Click);
			this.Previous.Click += new System.Web.UI.ImageClickEventHandler(this.NavigationButton_Click);
			this.Next.Click += new System.Web.UI.ImageClickEventHandler(this.NavigationButton_Click);
			this.Lastly.Click += new System.Web.UI.ImageClickEventHandler(this.NavigationButton_Click);
			_dg.DataBinding += new System.EventHandler(this.BeforeDataBinding);

			_dg.AllowPaging = true;
			_dg.AllowCustomPaging = false;
			_dg.PagerStyle.Visible = false;
			pagesize=iPageSize;
			_dg.PageSize = pagesize;
			_dg.PagerStyle.Mode = PagerMode.NumericPages;
			_dg.PagerStyle.HorizontalAlign = HorizontalAlign.Right;			
		}


		/// <summary>
		/// 主方法
		/// </summary>
		/// <param name="adg">DataGrid控件名</param>
		/// <param name="NewBind">数据绑定事件委托</param>
		public void SetTarget(DataGrid adg,BindDataDelegate NewBind)	{
			_dg=adg;
			BindData=new BindDataDelegate(NewBind);

			this.First.Click += new System.Web.UI.ImageClickEventHandler(this.NavigationButton_Click);
			this.Previous.Click += new System.Web.UI.ImageClickEventHandler(this.NavigationButton_Click);
			this.Next.Click += new System.Web.UI.ImageClickEventHandler(this.NavigationButton_Click);
			this.Lastly.Click += new System.Web.UI.ImageClickEventHandler(this.NavigationButton_Click);
			_dg.DataBinding += new System.EventHandler(this.BeforeDataBinding);

			_dg.AllowPaging = true;
			_dg.AllowCustomPaging = false;
			_dg.PagerStyle.Visible = false;
			_dg.PageSize = pagesize;
			_dg.PagerStyle.Mode = PagerMode.NumericPages;
			_dg.PagerStyle.HorizontalAlign = HorizontalAlign.Right;	
		}
		
		

		//分页按钮事件
		private void NavigationButton_Click(object sender, System.Web.UI.ImageClickEventArgs e) {
			string strCommandName=((ImageButton)sender).ID;//取得事件的对象名

			switch(strCommandName)	{
				case "First":
					_dg.CurrentPageIndex=0;//跳转到首页
					PageOperate();
					break;
				case "Previous":
					_dg.CurrentPageIndex=Math.Max(_dg.CurrentPageIndex-1,0);//跳转到上一页
					PageOperate();
					break;
				case "Next":
					_dg.CurrentPageIndex=Math.Min(_dg.CurrentPageIndex+1,_dg.PageCount-1);//跳转到下一页
					PageOperate();
					break;
				case "Lastly":
					_dg.CurrentPageIndex=_dg.PageCount-1;//跳转到最后一页
					PageOperate();
					break;
			}		
			BindData();//绑定数据
		}
		//页次显示改变
		private void PageOperate()	{
			PageNumber.Text=(_dg.CurrentPageIndex+1).ToString() + "/" + _dg.PageCount.ToString();//页次
			PageBulk.Text=pagesize.ToString();
		}
		
		//页面跳转
		private void Go_Click(object sender, System.Web.UI.ImageClickEventArgs e) 
		{
			if(SelectPage.Text.Trim()!="")
			{
				int iPage=int.Parse(SelectPage.Text.Trim()) - 1;
				if(iPage>=0 && iPage<=_dg.PageCount-1)	
				{
					_dg.CurrentPageIndex=iPage;
					PageOperate();
					BindData();	
				}
				else if (iPage>_dg.PageCount-1)
				{
					_dg.CurrentPageIndex=_dg.PageCount-1;
					BindData();
				}
				else
					_dg.CurrentPageIndex=0;
				BindData();
			}
			else
				ImageButton1.EnableViewState=true;
			 
		}

		/// <summary>
		/// DataGrid数据邦定前,设置导航条
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void BeforeDataBinding(object sender, System.EventArgs e) {
			int newCount = 0;
			int PageCount = 0;
			if (_dg.DataSource.GetType().ToString().ToLower() == "system.data.datatable") {
				newCount = ((DataTable)_dg.DataSource).Rows.Count;
			}
			else if(_dg.DataSource.GetType().ToString().ToLower() == "system.data.dataview") {
				newCount = ((DataView)_dg.DataSource).Table.Rows.Count;
			}
			else if(_dg.DataSource.GetType().ToString().ToLower() == "system.data.dataset") {
				newCount = ((DataSet)_dg.DataSource).Tables[0].Rows.Count;
			}

			PageCount = (int)((newCount-1) / pagesize + 1);
			PageNumber.Text=(_dg.CurrentPageIndex + 1).ToString() + "/" + PageCount.ToString();
			PageBulk.Text=pagesize.ToString();
			RecordNumber.Text=newCount.ToString();
		}

		private void Next_Click(object sender, System.Web.UI.ImageClickEventArgs e)
		{
		
		}

		private void Lastly_Click(object sender, System.Web.UI.ImageClickEventArgs e)
		{
		
		}

		 

		 

	}
}

⌨️ 快捷键说明

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