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号