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

📄 class1.cs

📁 一个关于DataGrid的类
💻 CS
字号:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace MyClass
{
	/// <summary>
	/// Class1 的摘要说明。
	/// </summary>
	public class Class1
	{
	
		public static DataBaseTool.ClassBase.AllDataBase theAllDataBase=new DataBaseTool.ClassBase.AllDataBase();

//	    public System.Web.HttpRequest req = System.Web.HttpContext.Current.Request;
 

		public static DataTable dt;
//				
		
		public Class1()
		{

			//
			// TODO: 在此处添加构造函数逻辑
			//
		}


		public static void Initialize_DataGrid(DataGrid dg,string sql)
		{
		    theAllDataBase.SqlOpen();
			theAllDataBase.SqlCommondText=sql;
			
			dg.AllowSorting=true;

			dt=theAllDataBase.SqlGetDataTable();

			dg.DataSource=theAllDataBase.SqlGetDataTable();
			dg.DataBind();
		}
		

//		public void Initialize_DataGrid(DataGrid dg,string sql,DataBaseTool.ClassBase.AllDataBase _theAllDataBase)
//		{
//			_theAllDataBase.SqlOpen();
//			_theAllDataBase.SqlCommondText=sql;
//			
//			dg.AllowSorting=true;
//			dg.DataSource=_theAllDataBase.SqlGetDataTable();
//			dg.DataBind();
//		}
//       



     	public static void MutilSortColumn(DataGrid dg,string str_sort)
		{

		    DataView dv=new DataView(dt);

			dv.Sort=str_sort;

			dg.AllowSorting=true;

			dg.DataSource=dv;
			
			dg.DataBind();

		}


		public static void DoubleSortColumn(DataGrid dg,DataGridSortCommandEventArgs e)
		{
			string SortExpression=e.SortExpression.ToString(); 
			string SortDirection="ASC"; //为排序方向变量赋初值
			if(SortExpression==dg.Attributes["SortExpression"])  //如果为当前排序列
			{
				SortDirection=(dg.Attributes["SortDirection"].ToString()==SortDirection?"DESC":"ASC");     //获得下一次的排序状态
			}
			dg.Attributes["SortExpression"]=SortExpression;
			dg.Attributes["SortDirection"]=SortDirection;


			string str_sort=dg.Attributes["SortExpression"]+" "+dg.Attributes["SortDirection"];

			DataView dv=new DataView(dt);

			dv.Sort=str_sort;

			dg.AllowSorting=true;

			dg.DataSource=dv;
			
			dg.DataBind();

		}



		public static void DataGrid_Fengye(DataGrid dg,Label lb1,Label lb2,string sql,DataGridSortCommandEventArgs e)
		{
			if(dt==null)
			{
				theAllDataBase.SqlOpen();

				theAllDataBase.SqlCommondText=sql;

				dt=theAllDataBase.SqlGetDataTable();
             }

				DataView dataview = new DataView();
				dataview = dt.DefaultView;
			
			
	//		dataview.Sort=str_sort;

            System.Web.HttpRequest req = System.Web.HttpContext.Current.Request;
			string cPage;
			int pageSize = 10;
			int currentPage;
			int pageCount;
			int numResults = 0;

			if (req.QueryString["page"]==null)
			{
				cPage="1";
			}
			else
			{
				cPage=req.QueryString["page"].ToString();
			}
			try
			{
				currentPage = Int32.Parse(cPage);
			}
			catch
			{
				currentPage = 1;
			}

			numResults = 0;
			int start = (int)((currentPage - 1) * pageSize);
			int to = (int)(currentPage * pageSize);
			if (start <= 0) start = 0;

			numResults = dataview.Count;
			int a1=0;
			pageCount = Math.DivRem(numResults,pageSize,out a1);
			if (a1>0)
			{
				pageCount++;
			}
			if(currentPage>pageCount || currentPage<=0)
			{
				currentPage = 1;
			}
			if(currentPage==pageCount) 
			{
				to = dataview.Count;
			}
   
			// Create one DataTable with one column.
			DataTable myTable = new DataTable("myTable");
			myTable = dataview.Table.Clone();

			//DataColumn colItem1 = new DataColumn("name",Type.GetType("System.String"));
			//DataColumn colItem2 = new DataColumn("types",Type.GetType("System.String"));
			//DataColumn colItem3 = new DataColumn("vendor",Type.GetType("System.String"));
			//myTable.Columns.Add(colItem1);
			//myTable.Columns.Add(colItem2);
			//myTable.Columns.Add(colItem3);
   
			//add row
			DataRow NewRow;
			for(int i=start;i<numResults;i++)
			{
				if(i<to) 
				{
					NewRow = myTable.NewRow();
					for(int k=0;k<dataview.Table.Columns.Count;k++)
					{
						NewRow[k] = dataview.Table.Rows[i][k];
					}
					myTable.Rows.Add(NewRow);
				}
			}
			myTable.AcceptChanges();

			DataView resultDataview = new DataView(myTable);

            dg.AllowSorting=true;

			string SortExpression=e.SortExpression.ToString(); 
			string SortDirection="ASC"; //为排序方向变量赋初值
			if(SortExpression==dg.Attributes["SortExpression"])  //如果为当前排序列
			{
				SortDirection=(dg.Attributes["SortDirection"].ToString()==SortDirection?"DESC":"ASC");     //获得下一次的排序状态
			}
			dg.Attributes["SortExpression"]=SortExpression;
			dg.Attributes["SortDirection"]=SortDirection;


			string str_sort=dg.Attributes["SortExpression"]+" "+dg.Attributes["SortDirection"];

			DataView dv=new DataView(dt);

			dv.Sort=str_sort;

			dg.AllowSorting=true;

            resultDataview.Sort=str_sort;

			dg.DataSource = resultDataview;
			dg.DataBind();

			/// <summary>
			///  生成页导航条。
			/// </summary>
			string strNav = "";
			int endpage;
			if (currentPage>1)
			{
				strNav += "<a href='?page="+ (currentPage-1).ToString() +"'>上一页</a>  ";
			}
			if (currentPage>11)
			{
				strNav += "<a href='?page=1'>1</a> ...";
			}
			if(pageCount>currentPage+10)
			{
				endpage = currentPage+10;
			}
			else
			{
				endpage = pageCount;
			}
			for (int i=currentPage-10;i<endpage+1;i++)
			{
				if(i>=1)
				{
					if (i==currentPage)
					{
						strNav +="<font color=#990000><strong>"+ i.ToString() +"</strong></font> ";
					}
					else
					{
						strNav += "<a href='?page="+ i.ToString() +"'>"+ i.ToString() +"</a> ";
					}
				}
			}
			if((currentPage+10)<pageCount)
			{
				strNav += "... <a href='?page="+ pageCount.ToString() +"'>"+ pageCount.ToString() +"</a>";
			}
			if(currentPage<pageCount)
			{
				strNav += " <a href='?page="+ (currentPage+1).ToString() +"'>下一页</a>  ";
			}

			lb1.Text = strNav;   
			lb2.Text = "共 "+ numResults.ToString() +" 条供应信息,当前显示第 "+ 
				(start+1).ToString() +" - "+ to.ToString()  +" 条,共 "+ pageCount.ToString() +" 页";
		}




		public static void DataGrid_Fengye(DataGrid dg,Label lb1,Label lb2,string sql,string str_sort)
		{
			if(dt==null)
			{
				theAllDataBase.SqlOpen();

				theAllDataBase.SqlCommondText=sql;

				dt=theAllDataBase.SqlGetDataTable();
			}

			DataView dataview = new DataView();
			dataview = dt.DefaultView;
			
			
			//		dataview.Sort=str_sort;

			System.Web.HttpRequest req = System.Web.HttpContext.Current.Request;
			string cPage;
			int pageSize = 10;
			int currentPage;
			int pageCount;
			int numResults = 0;

			if (req.QueryString["page"]==null)
			{
				cPage="1";
			}
			else
			{
				cPage=req.QueryString["page"].ToString();
			}
			try
			{
				currentPage = Int32.Parse(cPage);
			}
			catch
			{
				currentPage = 1;
			}

			numResults = 0;
			int start = (int)((currentPage - 1) * pageSize);
			int to = (int)(currentPage * pageSize);
			if (start <= 0) start = 0;

			numResults = dataview.Count;
			int a1=0;
			pageCount = Math.DivRem(numResults,pageSize,out a1);
			if (a1>0)
			{
				pageCount++;
			}
			if(currentPage>pageCount || currentPage<=0)
			{
				currentPage = 1;
			}
			if(currentPage==pageCount) 
			{
				to = dataview.Count;
			}
   
			// Create one DataTable with one column.
			DataTable myTable = new DataTable("myTable");
			myTable = dataview.Table.Clone();

			//DataColumn colItem1 = new DataColumn("name",Type.GetType("System.String"));
			//DataColumn colItem2 = new DataColumn("types",Type.GetType("System.String"));
			//DataColumn colItem3 = new DataColumn("vendor",Type.GetType("System.String"));
			//myTable.Columns.Add(colItem1);
			//myTable.Columns.Add(colItem2);
			//myTable.Columns.Add(colItem3);
   
			//add row
			DataRow NewRow;
			for(int i=start;i<numResults;i++)
			{
				if(i<to) 
				{
					NewRow = myTable.NewRow();
					for(int k=0;k<dataview.Table.Columns.Count;k++)
					{
						NewRow[k] = dataview.Table.Rows[i][k];
					}
					myTable.Rows.Add(NewRow);
				}
			}
			myTable.AcceptChanges();

			DataView resultDataview = new DataView(myTable);

			dg.AllowSorting=true;

			resultDataview.Sort=str_sort;

			dg.DataSource = resultDataview;
			dg.DataBind();

			/// <summary>
			///  生成页导航条。
			/// </summary>
			string strNav = "";
			int endpage;
			if (currentPage>1)
			{
				strNav += "<a href='?page="+ (currentPage-1).ToString() +"'>上一页</a>  ";
			}
			if (currentPage>11)
			{
				strNav += "<a href='?page=1'>1</a> ...";
			}
			if(pageCount>currentPage+10)
			{
				endpage = currentPage+10;
			}
			else
			{
				endpage = pageCount;
			}
			for (int i=currentPage-10;i<endpage+1;i++)
			{
				if(i>=1)
				{
					if (i==currentPage)
					{
						strNav +="<font color=#990000><strong>"+ i.ToString() +"</strong></font> ";
					}
					else
					{
						strNav += "<a href='?page="+ i.ToString() +"'>"+ i.ToString() +"</a> ";
					}
				}
			}
			if((currentPage+10)<pageCount)
			{
				strNav += "... <a href='?page="+ pageCount.ToString() +"'>"+ pageCount.ToString() +"</a>";
			}
			if(currentPage<pageCount)
			{
				strNav += " <a href='?page="+ (currentPage+1).ToString() +"'>下一页</a>  ";
			}

			lb1.Text = strNav;   
			lb2.Text = "共 "+ numResults.ToString() +" 条供应信息,当前显示第 "+ 
				(start+1).ToString() +" - "+ to.ToString()  +" 条,共 "+ pageCount.ToString() +" 页";
		}


	}
}

⌨️ 快捷键说明

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