UltraWebGrid中多表头的使用

Posted 路在脚下

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UltraWebGrid中多表头的使用相关的知识,希望对你有一定的参考价值。

UltraWebGrid控件是用来显示页面列表的,今天来介绍一下使用UltraWebGrid实现多表头。

先来看一下效果图:

 

 

 

 原有的表头如下:

            this.gridHelper.AddColumn("TemplateIDEdit", "模板id", null);
            this.gridHelper.AddColumn("TemplateCode", "模板编号", null);
            this.gridHelper.AddColumn("QTemplateName", "模板名称", null);
            this.gridHelper.AddColumn("OPCode", "工序", null);
            this.gridHelper.AddLinkColumn("DeDetail", "检测明细", null);
            this.gridHelper.AddLinkColumn("EnableLocation", "启用工位", null);
            this.gridHelper.AddColumn("Versions", "版本", null);
            this.gridHelper.AddColumn("CharacterEdit", "重要性", null);
            this.gridHelper.AddColumn("State", "状态", null);
            this.gridHelper.AddColumn("CheckDuty", "出现职责", null);
            //this.gridHelper.AddColumn("CheckDuty", "抽检职责", null);
            this.gridHelper.AddColumn("OPDetection", "OP检测", null);
            this.gridHelper.AddColumn("QCDetection", "QC检测", null);            
            this.gridHelper.AddColumn("CTDetection", "C/T检测", null);
            //this.gridHelper.AddColumn("Product", "产品相关", null);
            this.gridHelper.AddColumn("OPDuty", "OP职责", null);
            this.gridHelper.AddColumn("QCDuty", "QC职责", null);
            this.gridHelper.AddColumn("CTDuty", "CT职责", null);

            this.gridWebGrid.Columns.FromKey("TemplateIDEdit").Hidden = true;
            this.gridWebGrid.Columns.FromKey("OPDuty").Hidden = true;
            this.gridWebGrid.Columns.FromKey("QCDuty").Hidden = true;
            this.gridWebGrid.Columns.FromKey("CTDuty").Hidden = true;

 

在原有的表头上添加一行表头:

            foreach (Infragistics.WebUI.UltraWebGrid.UltraGridColumn c in gridWebGrid.DisplayLayout.Bands[0].Columns)
            {
                c.Header.RowLayoutColumnInfo.OriginY = 1; //纵向起始点,0为第一行,1为第二行
            }
            //创建一个列头对象
            Infragistics.WebUI.UltraWebGrid.ColumnHeader ch = new Infragistics.WebUI.UltraWebGrid.ColumnHeader(true);
            ch.Caption = "表头";   //列头文本标题
            ch.RowLayoutColumnInfo.OriginX = 1;//横向起始点,0为第一列,1为第二列
            ch.RowLayoutColumnInfo.OriginY = 0;//纵向起始点,0为第一行,1为第二行
            ch.RowLayoutColumnInfo.SpanX = 2;  //设置横向跨度
            ch.Style.HorizontalAlign = HorizontalAlign.Center; //设置新表头内容居中
            
            gridWebGrid.DisplayLayout.HeaderStyleDefault.Height = Unit.Pixel(20);
            gridWebGrid.DisplayLayout.Bands[0].HeaderLayout.Add(ch); //增加到列头集合中


            //把非多表头的列,进行跨行
            foreach (Infragistics.WebUI.UltraWebGrid.UltraGridColumn c in gridWebGrid.DisplayLayout.Bands[0].Columns)
            {
                if (c.Key != "TemplateIDEdit" && c.Key != "TemplateCode" )
                //c.Key 非多表头列的key值
                {
                    c.Header.RowLayoutColumnInfo.OriginY = 0; //从第一行开始
                    c.Header.RowLayoutColumnInfo.SpanY = 2; //跨2行
                }
            }

tip:因为“模板id”这一列之前还有一列,所以这里新增表头的X坐标起始为1。

以上是关于UltraWebGrid中多表头的使用的主要内容,如果未能解决你的问题,请参考以下文章

UltraWebGrid:如何在列中使用下拉列表

JS控制GridView行选择

C中多线程的同步

python中多类SVM的GridSearchCV

Java中多线程的使用!!

datatable 滚动条导致表头 html() 代码重复