UltraWebGrid的MultiColumn Headers设计
Code
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这样做的效果是,当我们水平拖动滚动条时,被固定的这几列是不随之而动的,适用于一些网上填
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这样做的效果是,当我们水平拖动滚动条时,被固定的这几列是不随之而动的,适用于一些网上填