List<string> sColumnName = new List<string>();
DataTable dt=new DataTable() ;
//清除列名
sColumnName.Clear();
//重新添加列名
sColumnName.Add("测试1");
sColumnName.Add("测试2");
sColumnName.Add("测试3");
sColumnName.Add("测试4");
sColumnName.Add("测试5");
sColumnName.Add("测试6");
sColumnName.Add("测试7");
sColumnName.Add("测试8");
sColumnName.Add("测试9");
sColumnName.Add("测试10");
sColumnName.Add("测试11");
sColumnName.Add("测试12");
//清空原有表头
bandedGridView1.Bands.Clear();
//隐藏原有的列标题
bandedGridView1.OptionsView.ShowColumnHeaders = false;
bandedGridView1.OptionsView.ShowGroupPanel = false;
//新建父表头
GridBand[] grid = new GridBand[sColumnName.Count];
//新建子表头
GridBand[] childrenPick = new GridBand[3];
GridBand[] childrenPlace = new GridBand[3];
//创建表头,在指定父表头下创建子表头
for (int i = 0; i < grid.Length; i++)
{
grid[i] = bandedGridView1.Bands.AddBand(sColumnName[i]);
grid[i].AppearanceHeader.TextOptions.HAlignment = HorzAlignment.Center;
if (sColumnName[i] == "测试6")
{
childrenPick[0] = grid[i].Children.AddBand("1");
childrenPick[0].AppearanceHeader.TextOptions.HAlignment = HorzAlignment.Center;
childrenPick[1] = grid[i].Children.AddBand("2");
childrenPick[1].AppearanceHeader.TextOptions.HAlignment = HorzAlignment.Center;
childrenPick[2] = grid[i].Children.AddBand("3");
childrenPick[2].AppearanceHeader.TextOptions.HAlignment = HorzAlignment.Center;
}
if (sColumnName[i] == "测试7")
{
childrenPlace[0] = grid[i].Children.AddBand("1");
childrenPlace[0].AppearanceHeader.TextOptions.HAlignment = HorzAlignment.Center;
childrenPlace[1] = grid[i].Children.AddBand("2");
childrenPlace[1].AppearanceHeader.TextOptions.HAlignment = HorzAlignment.Center;
childrenPlace[2] = grid[i].Children.AddBand("3");
childrenPlace[2].AppearanceHeader.TextOptions.HAlignment = HorzAlignment.Center;
}
}
//自适应宽度
//bandedGridView1.BestFitColumns();
//dt表中创建表头
for (int i = 0; i < sColumnName.Count; i++)
{
if (sColumnName[i] == "测试6" || sColumnName[i] == "测试7")
{
dt.Columns.Add(sColumnName[i] + "1");
dt.Columns.Add(sColumnName[i] + "2");
dt.Columns.Add(sColumnName[i] + "3");
}
else
{
dt.Columns.Add(sColumnName[i]);
}
}
//绑定表
gridControl1.DataSource = dt;
//数据绑定列,名称为dt的表头名称
bandedGridView1.Columns["测试1"].OwnerBand = grid[0];
bandedGridView1.Columns["测试1"].Width = 30;
//bandedGridView1.Columns["设备号"].AppearanceCell.TextOptions.HAlignment= HorzAlignment.Center;
bandedGridView1.Columns["测试2"].OwnerBand = grid[1];
bandedGridView1.Columns["测试2"].Width = 30;
bandedGridView1.Columns["测试3"].OwnerBand = grid[2];
bandedGridView1.Columns["测试3"].Width = 30;
bandedGridView1.Columns["测试4"].OwnerBand = grid[3];
bandedGridView1.Columns["测试4"].Width = 30;
bandedGridView1.Columns["测试5"].OwnerBand = grid[4];
bandedGridView1.Columns["测试5"].Width = 30;
bandedGridView1.Columns["测试61"].OwnerBand = childrenPick[0];
bandedGridView1.Columns["测试61"].Width = 20;
bandedGridView1.Columns["测试62"].OwnerBand = childrenPick[1];
bandedGridView1.Columns["测试62"].Width = 20;
bandedGridView1.Columns["测试63"].OwnerBand = childrenPick[2];
bandedGridView1.Columns["测试63"].Width = 20;
bandedGridView1.Columns["测试71"].OwnerBand = childrenPlace[0];
bandedGridView1.Columns["测试71"].Width = 20;
bandedGridView1.Columns["测试72"].OwnerBand = childrenPlace[1];
bandedGridView1.Columns["测试72"].Width = 20;
bandedGridView1.Columns["测试73"].OwnerBand = childrenPlace[2];
bandedGridView1.Columns["测试73"].Width = 20;
bandedGridView1.Columns["测试8"].OwnerBand = grid[7];
bandedGridView1.Columns["测试8"].Width = 60;
bandedGridView1.Columns["测试9"].OwnerBand = grid[8];
bandedGridView1.Columns["测试9"].Width = 125;
bandedGridView1.Columns["测试10"].OwnerBand = grid[9];
bandedGridView1.Columns["测试10"].Width = 125;
bandedGridView1.Columns["测试11"].OwnerBand = grid[10];
bandedGridView1.Columns["测试11"].Width = 125;
bandedGridView1.Columns["测试12"].OwnerBand = grid[11];
bandedGridView1.Columns["测试12"].Width = 50;
//添加测试用数据
for (int i = 0; i < 9; i++)
{
dt.Rows.Add(i + 1, i + 2, i + 3, i + 4, i + 5, i + 6, i + 7, i + 8, i + 9, i + 10, i + 11, i + 12, i + 13, i + 15, i + 16);
}
(自学日记)DevExpress bandedGridView复合表头并绑定DataTable
于 2024-08-30 13:56:12 首次发布