Click here to Skip to main content
15,917,553 members
Please Sign up or sign in to vote.
5.00/5 (1 vote)
See more:
i just want to display a table from database to a datagrid which i can do.but i need to customize the datagrid headers.like if a table consist of 4 fields like name1,name2,date1 and date2.i need to add two headers above this fields like name and date.name1 and name2 should come under name and date1 and date2 should come under date.like this way i need to customize the datagrid.i am not having any idea how to do it.can anyone pls help me?
Posted
Updated 28-Mar-12 1:00am
v2

Try this

C#
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 = "";
            HeaderCell.ColumnSpan = 5;
            HeaderCell.HorizontalAlign = HorizontalAlign.Center;
            HeaderGridRow.Cells.Add(HeaderCell);

            HeaderCell = new TableCell();
            HeaderCell.Text = "Mortality";
            HeaderCell.ColumnSpan = 4;
            HeaderCell.HorizontalAlign = HorizontalAlign.Center;
            HeaderGridRow.Cells.Add(HeaderCell);

            HeaderCell = new TableCell();
            HeaderCell.Text = "";
            HeaderCell.ColumnSpan = 1;
            HeaderCell.HorizontalAlign = HorizontalAlign.Center;
            HeaderGridRow.Cells.Add(HeaderCell);

            HeaderCell = new TableCell();
            HeaderCell.Text = "CUM Feed Intake";
            HeaderCell.ColumnSpan = 2;
            HeaderCell.HorizontalAlign = HorizontalAlign.Center;
            HeaderGridRow.Cells.Add(HeaderCell);

            HeaderCell = new TableCell();
            HeaderCell.Text = "Body Weight";
            HeaderCell.ColumnSpan = 3;
            HeaderCell.HorizontalAlign = HorizontalAlign.Center;
            HeaderGridRow.Cells.Add(HeaderCell);

            HeaderCell = new TableCell();
            HeaderCell.Text = "F.C.R";
            HeaderCell.ColumnSpan = 2;
            HeaderCell.HorizontalAlign = HorizontalAlign.Center;
            HeaderGridRow.Cells.Add(HeaderCell);

            HeaderCell = new TableCell();
            HeaderCell.Text = "Feed Details";
            HeaderCell.ColumnSpan = 4;
            HeaderCell.HorizontalAlign = HorizontalAlign.Center;
            HeaderGridRow.Cells.Add(HeaderCell);

            HeaderCell = new TableCell();
            HeaderCell.Text = "Feed Requirement";
            HeaderCell.ColumnSpan = 3;
            HeaderCell.HorizontalAlign = HorizontalAlign.Center;
            HeaderGridRow.Cells.Add(HeaderCell);

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

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

        }
 
Share this answer
 
v2
Comments
amaljosep 28-Mar-12 2:17am    
GVIntReport refers to what?
Member 8609405 28-Mar-12 2:22am    
its my gridview id
amaljosep 28-Mar-12 2:30am    
i need to use datagrid instead of gridview.i also got one alternate solution using gridview.anyway thanks a lot for your help........if u know how to implement this using datagrid ,plsss help me...
You can use similar code for DataGrid:
C#
protected void Grid1_ItemCreated(object sender, DataGridItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Header)
    {
        DataGrid grid = sender as DataGrid;
        DataGridItem dgi = new DataGridItem(0, e.Item.DataSetIndex, ListItemType.Header);
        dgi.Cells.Add(new TableCell { ColumnSpan = 2, Text = "Name" });
        dgi.Cells.Add(new TableCell { ColumnSpan = 2, Text = "Date" });
        Table t = grid.Controls[0] as Table;
        t.Rows.AddAt(0, dgi);
    }
}
 
Share this answer
 
Comments
amaljosep 29-Mar-12 1:22am    
its works for me....thanks a lot for your help........
amaljosep 29-Mar-12 1:52am    
i am having one query like whether we can allign the values in the column to the center in the newly created rows.

for eg whether we can allign name and date to the center of the column in the above example???

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900