dev 复合表头的使用

作为一名开发小白,开发时遇到使用复合表头,此前没有使用过,浪费很多时间弄出,此为本人经验,仅供参考。

   1.首先针对于vs里面增加了dev控件来说,创建winform页面后拖动gridcontrol 到表单中

 

 

 2.页面中有 click here to change view, 改变视图,点开之后有 convert to  :cardview 、bandedgridview… 直选选择 bandedgridview 这时打开 run designer 设计器

 

 

 3.这时可以点击 add new band 增加一个表头,感受一下。gridband1 里面如果存在字段,则显示出字段,点击show columns selector 把显示的字段拖动到此处,则选中的 gridband1 里面则显示当前的字段了,这是在设计器里面进行增加复合表头,此种情况不在赘述,接下来,说一下调用代码实现动态复合表头。

4.直接贴代码吧,可以更加直白。

// 示例
        public void fillgrid(bandedgridview bandview,datatable dt)
        {
            dictionary<int, string> dlist = new dictionary<int, string>();
            string[] totalnd = mainnd.split(',');
            for (int j = 0; j < totalnd.length; j++)
            {
                gridband gb = new gridband();
                gb.caption = totalnd[j].tostring();
                bandview.bands.add(gb);
                for (int i = 35; i < dt.columns.count; i++)
                {
                    createcolumn(gb, dt.columns[i].columnname);
                    gb.appearanceheader.options.useforecolor = true;
                    gb.appearanceheader.options.usebackcolor = true;
                    gb.appearanceheader.textoptions.halignment = devexpress.utils.horzalignment.center;
                }
            }
            this.gridcontrol1.datasource = dt;
            this.bandedgridview1.optionsview.columnautowidth = false;
            this.bandedgridview1.scrollstyle = scrollstyleflags.livehorzscroll | scrollstyleflags.livevertscroll;
            this.bandedgridview1.horzscrollvisibility = scrollvisibility.always;

        }
        public void createcolumn(gridband bandc, string colunm_index)
        {
            bandedgridcolumn cola = new devexpress.xtragrid.views.bandedgrid.bandedgridcolumn();
            cola.name = "" + colunm_index;
            cola.caption = "" + colunm_index;
            cola.fieldname = "" + colunm_index;
            cola.visible = true;
            bandc.columns.add(cola);
            cola.appearanceheader.textoptions.halignment = devexpress.utils.horzalignment.center;
        }

5.此代码可以直接放在类里面,传两个参数进行调用,第一个参数不说了,就是gridview1,第二个是dataset,里面有复合表头使用的字段,for循环中绑定列名和数据,因为我是有两个复合表头,一个是静态表头,一个是动态表头,从第35个字段开始就进行复合表头字段调用。 此调用过程中,可以对表头进行只读和长度等一系列改动,达到自身需要。

 

   这是动态生成的月份,通过数据库资质sql,进行动态绑定,是不是很好玩啊,祝大家前程似锦。