ASP.NET 2.0中合并 GridView 的表头单元格

添加人:iyond七级(4328分)   添加时间:2007-06-13    阅读次数:1887  收藏此教程

在实际工作中,往往需要合并表格头部的单元格,下面就是一个实现的例子。运行结果如图:

<%@ Page Language="C#" AutoEventWireup="true" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
ICollection CreateDataSource()
{
    System.Data.DataTable dt = new System.Data.DataTable();
    System.Data.DataRow dr;
    dt.Columns.Add(new System.Data.DataColumn("学生姓名", typeof(System.String)));
    dt.Columns.Add(new System.Data.DataColumn("语文", typeof(System.Decimal)));
    dt.Columns.Add(new System.Data.DataColumn("数学", typeof(System.Decimal)));
    dt.Columns.Add(new System.Data.DataColumn("英语", typeof(System.Decimal)));

    for (int i = 0; i < 8; i++)
    {
        System.Random rd = new System.Random(Environment.TickCount * i); ;
        dr = dt.NewRow();
        dr[0] = "学生" + i.ToString();
        dr[1] = System.Math.Round(rd.NextDouble() * 100, 2);
        dr[2] = System.Math.Round(rd.NextDouble() * 100, 2);
        dr[3] = System.Math.Round(rd.NextDouble() * 100, 2);
        dt.Rows.Add(dr);
    }
    System.Data.DataView dv = new System.Data.DataView(dt);
    return dv;
}



protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        GridView1.BorderColor = System.Drawing.Color.DarkOrange;
        GridView1.DataSource = CreateDataSource();
        GridView1.DataBind();
    }
}

protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{

    if (e.Row.RowType == DataControlRowType.Header)
    {
        GridViewRow rowHeader = new GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Normal);
        rowHeader.BackColor = System.Drawing.Color.White;
        rowHeader.Font.Bold = true;
        TableCellCollection cells = e.Row.Cells;
        TableCell headerCell = new TableCell();
        headerCell.Text = "";
        rowHeader.Cells.Add(headerCell);
        headerCell = new TableCell();
        headerCell.Text = "学生成绩";
        headerCell.ColumnSpan = cells.Count - 1;
        headerCell.HorizontalAlign = HorizontalAlign.Center;
        rowHeader.Cells.Add(headerCell);
        rowHeader.Visible = true;
        GridView1.Controls[0].Controls.AddAt(0, rowHeader);
    }
}

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    e.Row.Attributes.Add("style", "background:#FFF");
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>合并 GridView 的表头单元格</title>
</head>
<body>
  <form id="Form1" runat="server">
    <asp:GridView ID="GridView1" runat="server" CellSpacing="1" CellPadding="3"
      Font-Size="12px" Width="300px" BackColor="orange" BorderWidth="0"
      OnRowDataBound="GridView1_RowDataBound" OnRowCreated="GridView1_RowCreated">
    </asp:GridView>
  </form>
</body>
</html>


1页 第1上一页1下一页
相关的教程: GridView 合并表头
收藏此教程

当前平均分: -4.0(2 次打分)

-5-4-3-2-1012345
评论主题
您的大名
您的评论
验证码 点击换一个验证码
知识库搜索: