(自学日记)DevExpress bandedGridView复合表头并绑定DataTable

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值