http://timsoft.cnblogs.com/articles/412171.html
脚本
<asp:DataGrid id="dgDoubleHeader" runat="server" AllowPaging="True" AutoGenerateColumns="False"
Width="100%" PageSize="5" BorderColor="#336666" BorderStyle="Double" BorderWidth="3px" BackColor="White"
CellPadding="4" GridLines="Horizontal">
<SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#339966"></SelectedItemStyle>
<ItemStyle ForeColor="#333333" BackColor="White"></ItemStyle>
<HeaderStyle Font-Bold="True" ForeColor="White" BackColor="#336666"></HeaderStyle>
<FooterStyle ForeColor="#333333" BackColor="White"></FooterStyle>
<Columns>
<asp:BoundColumn DataField="FirstName" HeaderText="FirstName"></asp:BoundColumn>
<asp:BoundColumn DataField="LastName" HeaderText="LastName"></asp:BoundColumn>
<asp:BoundColumn DataField="HomePhone" HeaderText="HomePhone"></asp:BoundColumn>
<asp:BoundColumn DataField="City" HeaderText="City"></asp:BoundColumn>
<asp:BoundColumn DataField="PostalCode" HeaderText="PostalCode"></asp:BoundColumn>
</Columns>
<PagerStyle HorizontalAlign="Center" ForeColor="White" Position="TopAndBottom" BackColor="#336666"
Mode="NumericPages"></PagerStyle>
</asp:DataGrid>
代码
protected System.Web.UI.WebControls.DataGrid dgDoubleHeader;
//用来判断两个(上下)Pager的位置
private bool upPager = true;
private void DataGridDataBind()
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
//定义数据连接对象,其中数据库连接字符串是在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
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
//填充数据集
da.Fill(ds,"testTable");
//进行数据绑定
dgDoubleHeader.DataSource = ds.Tables["testTable"];
dgDoubleHeader.DataBind();
}
catch(SqlException error)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
//输出异常信息
Response.Write(error.ToString());
}
}
private void Page_Load(object sender, System.EventArgs e)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
//页面初试化时进行数据绑定
if(!IsPostBack)
DataGridDataBind();
}
private void dgDoubleHeader_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
//获取DataGrid控件中项的类型
ListItemType ItemType = e.Item.ItemType;
//判断是否是页导航项
if (ItemType == ListItemType.Pager)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
//判断是否是第一个页导航项
if (upPager)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
//根据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;
}
}
![](/Images/OutliningIndicators/InBlock.gif)
}
private void dgDoubleHeader_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
//改变Pager标志的值使其可以在每次触发分页事件时都设置标题头
upPager = true;
//设置新的页面索引值
dgDoubleHeader.CurrentPageIndex = e.NewPageIndex;
//重新进行数据绑定
DataGridDataBind();
}