GridControl 复合表头(多行标题)

说明:

最好是通过编辑视图进行设计,后台编码有点麻烦。

例图:(上面的GC是后台编写 ,下面的是设计器设计)

后台代码编写:

 public void InitCtrl() {
            DevExpress.XtraGrid.Views.BandedGrid.BandedGridView view = bgv as DevExpress.XtraGrid.Views.BandedGrid.BandedGridView;
            //开始视图的编辑
            view.BeginUpdate();
            //开始数据的编辑
            view.BeginDataUpdate();
            view.Bands.Clear();

            //因为有band列了,隐藏列标题
            view.OptionsView.ShowColumnHeaders = false;

            //列标题
            DevExpress.XtraGrid.Views.BandedGrid.GridBand bandID = view.Bands.AddBand("Stu_ID");            
            bandID.Visible = false;
            DevExpress.XtraGrid.Views.BandedGrid.GridBand bandNnum = view.Bands.AddBand("学号");
            DevExpress.XtraGrid.Views.BandedGrid.GridBand bandName = view.Bands.AddBand("姓名");
            //合并表头显示的标题
            DevExpress.XtraGrid.Views.BandedGrid.GridBand bandSource = view.Bands.AddBand("详细信息");
            DevExpress.XtraGrid.Views.BandedGrid.GridBand bandSex = bandSource.Children.AddBand("性别");
            DevExpress.XtraGrid.Views.BandedGrid.GridBand bandAge = bandSource.Children.AddBand("年龄");
            DevExpress.XtraGrid.Views.BandedGrid.GridBand bandBirth = bandSource.Children.AddBand("生日");

            DevExpress.XtraGrid.Views.BandedGrid.GridBand bandAdd = view.Bands.AddBand("地址");
            //合并表头居中显示
            bandSource.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;

            //是否显示水平滚动条
            view.OptionsView.ColumnAutoWidth = true;
            // panel 值
           // view.GroupPanelText = "学生信息";

            //因为有Band列了,所以把ColumnHeader隐藏
            view.OptionsView.ShowColumnHeaders = false;
            view.OptionsView.ShowGroupPanel = false;
         
            //列绑定
            string[] str = new string[] { "Stu_ID", "Stu_Number", "Stu_Name", "Stu_Sex", "Stu_Age", "Stu_BirthDate", "Stu_Address" };
            for (int i = 0; i < str.Length; i++) {
                DevExpress.XtraGrid.Views.BandedGrid.BandedGridColumn col = view.Columns.AddField(str[i]);
                //设置该列在编辑视图时的显示位置(倒数第二列)  
                col.VisibleIndex = i;
                //设置列格式
               // col.UnboundType = DevExpress.Data.UnboundColumnType.Decimal;
                //此列不可编辑
                col.OptionsColumn.AllowEdit = false;    
                col.Visible = true;
                //列内容居中
                col.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
                //视图中添加一列
                view.Columns.Add(col);   
            }

            //列匹配
            view.Columns["Stu_ID"].OwnerBand = bandID;
            view.Columns["Stu_Number"].OwnerBand = bandNnum;
            view.Columns["Stu_Name"].OwnerBand = bandName;
            view.Columns["Stu_Sex"].OwnerBand = bandSex;
            view.Columns["Stu_Age"].OwnerBand = bandAge;
            view.Columns["Stu_BirthDate"].OwnerBand = bandBirth;
            view.Columns["Stu_Address"].OwnerBand = bandAdd;

            //自适应宽度
            view.BestFitColumns();

            view.EndDataUpdate();
            view.EndUpdate();
        }



版权声明:本文为博主原创文章,未经博主允许不得转载。

 

posted @ 2015-06-05 09:28  Jackerson  阅读(1836)  评论(0编辑  收藏  举报