How to add Header and Subheader in Gridview

hi you can do it like this

enter image description here

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:GridView ID="grvMergeHeader" runat="server" 
                      BackColor="LightGoldenrodYellow" 
                      BorderColor="Tan" BorderWidth="5px" 
                      CellPadding="3" ForeColor="Black" 
                      GridLines="None" BorderStyle="None" CellSpacing="2" 
                      AutoGenerateColumns="False" 
                      DataSourceID="SqlDataSource1" 
                      OnRowCreated="grvMergeHeader_RowCreated">
              <FooterStyle BackColor="Tan" />
              <SelectedRowStyle BackColor="DarkSlateBlue" ForeColor="GhostWhite" />
              <PagerStyle BackColor="PaleGoldenrod" ForeColor="DarkSlateBlue" 
                      HorizontalAlign="Center" />
              <HeaderStyle BackColor="Tan" Font-Bold="True" />
              <AlternatingRowStyle BackColor="PaleGoldenrod" />
            <Columns>
                <asp:BoundField DataField="DepartMentID" 
                                HeaderText="DepartMentID" 
                                SortExpression="DepartMentID" />
                <asp:BoundField DataField="DepartMent" 
                                HeaderText="DepartMent" 
                                SortExpression="DepartMent" />
                <asp:BoundField DataField="Name" 
                                HeaderText="Name" 
                                SortExpression="Name" />
                <asp:BoundField DataField="Location" 
                                HeaderText="Location" 
                                SortExpression="Location" />
            </Columns>
        </asp:GridView>
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
            SelectCommand="SELECT [DepartMentID], [DepartMent], [Name], [Location] FROM [Employee]">
        </asp:SqlDataSource>
        &nbsp;</div>
    </form>
</body>
</html>

Code behind

protected void grvMergeHeader_RowCreated(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.Header)
        {
            GridView HeaderGrid = (GridView)sender;
            GridViewRow HeaderGridRow = new GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Insert);
            TableCell HeaderCell = new TableCell();
            HeaderCell.Text = "Department";
            HeaderCell.ColumnSpan = 2;
            HeaderGridRow.Cells.Add(HeaderCell);

            HeaderCell = new TableCell();
            HeaderCell.Text = "Employee";
            HeaderCell.ColumnSpan = 2;
            HeaderGridRow.Cells.Add(HeaderCell);

            grvMergeHeader.Controls[0].Controls.AddAt(0, HeaderGridRow);

        } 

Leave a Comment