Infragistics中WebGrid的MultiColumn Headers设计

一般我们在设计Grid的多行表头时,可能首先考虑到用Repeater或DataList,但现在我们可以用Infragistics的WebGrid来很轻松的实现这个功能,我们要实现的效果图如下:

6181.gif

实现这样的表头的代码如下:
在Grid的InitializeLayout事件下加入下面的代码:
None.gif          //
None.gif        
// 设计多表头
None.gif        
//
None.gif
         private   void  ut_grid105_InitializeLayout( object  sender, Infragistics.WebUI.UltraWebGrid.LayoutEventArgs e)
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            
foreach(Infragistics.WebUI.UltraWebGrid.UltraGridColumn c in e.Layout.Bands[0].Columns)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                c.Header.RowLayoutColumnInfo.OriginY 
= 1;
ExpandedSubBlockEnd.gif            }

InBlock.gif
InBlock.gif            
//新建一个表头,设置它的显示名称
InBlock.gif
            Infragistics.WebUI.UltraWebGrid.ColumnHeader ch = new ColumnHeader(true);
InBlock.gif            ch.Caption 
= "购进量";
InBlock.gif            
//设置Y轴起始位置
InBlock.gif
            ch.RowLayoutColumnInfo.OriginY = 0;
InBlock.gif            
//设置X轴起始位置
InBlock.gif
            ch.RowLayoutColumnInfo.OriginX = 4;
InBlock.gif            
//设置该表头X轴方向占几列
InBlock.gif
            ch.RowLayoutColumnInfo.SpanX = 2;
InBlock.gif
InBlock.gif            
//将该表头加入到我们的Grid中
InBlock.gif
            e.Layout.Bands[0].HeaderLayout.Add(ch);
InBlock.gif
InBlock.gif            Infragistics.WebUI.UltraWebGrid.ColumnHeader ch1 
= new ColumnHeader(true);
InBlock.gif            ch1.Caption 
= "消费量";
InBlock.gif            ch1.RowLayoutColumnInfo.OriginY 
= 0;
InBlock.gif            ch1.RowLayoutColumnInfo.OriginX 
= 6;
InBlock.gif            ch1.RowLayoutColumnInfo.SpanX 
= 5;
InBlock.gif
InBlock.gif            e.Layout.Bands[
0].HeaderLayout.Add(ch1);
InBlock.gif
InBlock.gif
InBlock.gif            
foreach(Infragistics.WebUI.UltraWebGrid.UltraGridColumn c in e.Layout.Bands[0].Columns)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                
if(c.Key != "A02" && c.Key != "A03" && c.Key != "A04" && c.Key != "A05" && c.Key != "A06" && c.Key != "A07" && c.Key != "A08")
ExpandedSubBlockStart.gifContractedSubBlock.gif                
dot.gif{
InBlock.gif                    c.Header.RowLayoutColumnInfo.OriginY 
= 0;
InBlock.gif                    c.Header.RowLayoutColumnInfo.SpanY 
= 2;
ExpandedSubBlockEnd.gif                }

ExpandedSubBlockEnd.gif            }

InBlock.gif
ExpandedBlockEnd.gif}

当然,我们还可以固定某一列或某几列,代码如下:

None.gif // 固定列
None.gif
            e.Layout.Bands[ 0 ].Columns.FromKey( " zbmc " ).Header.Fixed  =   true ;
None.gif            e.Layout.Bands[
0 ].Columns.FromKey( " jldw " ).Header.Fixed  =   true ;
None.gif            e.Layout.Bands[
0 ].Columns.FromKey( " zbdm " ).Header.Fixed  =   true ;

这样做的效果是,当我们水平拖动滚动条时,被固定的这几列是不随之而动的,适用于一些网上填写表格(表格横向很长)的情况.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值