UltraWebGrid的MultiColumn Headers设计
    
1
一般我们在设计Grid的多行表头时,可能首先考虑到用Repeater或DataList,但现在我们可以用Infragistics的WebGrid来很轻松的实现这个功能,我们要实现的效果图如下:2
 3
实现这样的表头的代码如下:4
在Grid的InitializeLayout事件下加入下面的代码:5

6
        //7
        //设计多表头8
        //9
        private void ut_grid105_InitializeLayout(object sender, Infragistics.WebUI.UltraWebGrid.LayoutEventArgs e)10

        
{11
            foreach(Infragistics.WebUI.UltraWebGrid.UltraGridColumn c in e.Layout.Bands[0].Columns)12

            
{13
                c.Header.RowLayoutColumnInfo.OriginY = 1;14
            }15
            //新建一个表头,设置它的显示名称16
            Infragistics.WebUI.UltraWebGrid.ColumnHeader ch = new ColumnHeader(true);17
            ch.Caption = "购进量";18
            //设置Y轴起始位置19
            ch.RowLayoutColumnInfo.OriginY = 0;20
            //设置X轴起始位置21
            ch.RowLayoutColumnInfo.OriginX = 4;22
            //设置该表头X轴方向占几列23
            ch.RowLayoutColumnInfo.SpanX = 2;24
            //将该表头加入到我们的Grid中25
            e.Layout.Bands[0].HeaderLayout.Add(ch);26
            Infragistics.WebUI.UltraWebGrid.ColumnHeader ch1 = new ColumnHeader(true);27
            ch1.Caption = "消费量";28
            ch1.RowLayoutColumnInfo.OriginY = 0;29
            ch1.RowLayoutColumnInfo.OriginX = 6;30
            ch1.RowLayoutColumnInfo.SpanX = 5;31
            e.Layout.Bands[0].HeaderLayout.Add(ch1);32

33
            foreach(Infragistics.WebUI.UltraWebGrid.UltraGridColumn c in e.Layout.Bands[0].Columns)34

            
{35
                if(c.Key != "A02" && c.Key != "A03" && c.Key != "A04" && c.Key != "A05" && c.Key != "A06" && c.Key != "A07" && c.Key != "A08")36

                
{37
                    c.Header.RowLayoutColumnInfo.OriginY = 0;38
                    c.Header.RowLayoutColumnInfo.SpanY = 2;39
                }40
            }41
}42
当然,我们还可以固定某一列或某几列,代码如下:43
//固定列44
            e.Layout.Bands[0].Columns.FromKey("zbmc").Header.Fixed = true;45
            e.Layout.Bands[0].Columns.FromKey("jldw").Header.Fixed = true;46
            e.Layout.Bands[0].Columns.FromKey("zbdm").Header.Fixed = true;47
这样做的效果是,当我们水平拖动滚动条时,被固定的这几列是不随之而动的,适用于一些网上填
                    
                
                
                
            
        
浙公网安备 33010602011771号