using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Configuration;
namespace CommonFunction
{
	/// <summary>
	/// DataGridDoubleHeader 的摘要说明。
	/// </summary>
	public class DataGridDoubleHeader : System.Web.UI.Page
	{
		protected System.Web.UI.WebControls.DataGrid dgDoubleHeader;
		//用来判断两个（上下）Pager的位置
		private bool upPager  = true;
		private void Page_Load(object sender, System.EventArgs e)
		{
			//页面初试化时进行数据绑定
			if(!IsPostBack)
				DataGridDataBind();
		}
		private void DataGridDataBind()
		{
			//定义数据连接对象,其中数据库连接字符串是在Web.Config文件中定义的
			SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionSqlServer"].ToString());
			//创建数据适配器对象
			SqlDataAdapter da = new SqlDataAdapter("SELECT LastName,FirstName, HomePhone, City, PostalCode FROM Employees",conn);
			//创建DataSet对象
			DataSet ds = new DataSet();
			try
			{
				//填充数据集
				da.Fill(ds,"testTable");
				//进行数据绑定
				dgDoubleHeader.DataSource = ds.Tables["testTable"];
				dgDoubleHeader.DataBind();
			}
			catch(SqlException error)
			{
				//输出异常信息
				Response.Write(error.ToString());
			}	
		}

		#region Web 窗体设计器生成的代码
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		/// <summary>
		/// 设计器支持所需的方法 - 不要使用代码编辑器修改
		/// 此方法的内容。
		/// </summary>
		private void InitializeComponent()
		{    
			this.dgDoubleHeader.ItemCreated += new System.Web.UI.WebControls.DataGridItemEventHandler(this.dgDoubleHeader_ItemCreated);
			this.dgDoubleHeader.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.dgDoubleHeader_PageIndexChanged);
			this.Load += new System.EventHandler(this.Page_Load);

		}
		#endregion

		private void dgDoubleHeader_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
		{
			//获取DataGrid控件中项的类型
			ListItemType ItemType = e.Item.ItemType;
			//判断是否是页导航项
			if (ItemType == ListItemType.Pager) 
			{ 
				//判断是否是第一个页导航项
				if (upPager) 
				{ 
					//根据DataGrid控件的项定义单元格对象
					TableCell cellPersonal = (TableCell) e.Item.Controls[0];
					//移出该单元格内的所有控件
					cellPersonal.Controls.Clear();
					//设置单元格对象的背景色
					cellPersonal.BackColor = Color.Orange; 
					//设置单元格对象的前景色
					cellPersonal.ForeColor = Color.Black; 
					//设置该单元格对象跨3列
					cellPersonal.ColumnSpan = 2; 
					//设置该单元格对象的对齐方式为居中
					cellPersonal.HorizontalAlign = HorizontalAlign.Center; 
					//添加单元格内的文本内容
					cellPersonal.Controls.Add(new LiteralControl("姓名")); 
					//定义单元格对象
					TableCell cellWork = new TableCell();
					//设置单元格对象的背景色
					cellWork.BackColor = Color.OrangeRed;
					//设置单元格对象的前景色
					cellWork.ForeColor = Color.Black;
					//设置该单元格对象跨2列
					cellWork.ColumnSpan = 3; 
					//设置该单元格对象的对齐方式为居中
					cellWork.HorizontalAlign = HorizontalAlign.Center;
					//添加单元格内的文本内容
					cellWork.Controls.Add(new LiteralControl("联系方式"));
					//在该项的控件集合中添加单元格对象
					e.Item.Controls.Add(cellWork);
					//改变Pager标志
					upPager = false; 
				}
			}

		}

		private void dgDoubleHeader_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
		{
			//改变Pager标志的值使其可以在每次触发分页事件时都设置标题头
			upPager = true; 
			//设置新的页面索引值
			dgDoubleHeader.CurrentPageIndex = e.NewPageIndex;
			//重新进行数据绑定
			DataGridDataBind();
		}
	}
}
