如何在C#中为数据网格提供多个标头? [英] HOw to provide multiple headers to a datagrid in c#?

查看:52
本文介绍了如何在C#中为数据网格提供多个标头?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我只想显示一个从数据库到数据网格的表,但是我需要自定义数据网格标题.例如,如果一个表包含4个字段,如name1,name2,date1和date2,我需要添加在此字段上方的两个标头,如name和date.name1和name2应该位于name之下,date1和date2应该属于date.like这样,我需要自定义datagrid.我不知道该怎么做.

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?

推荐答案

试试这个

Try this

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);

        }


您可以对DataGrid使用类似的代码:
You can use similar code for DataGrid:
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);
    }
}


这篇关于如何在C#中为数据网格提供多个标头?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆