C1FlexGrid在行头没有显示默认的序号,本文就来介绍如何在行头显示行号。

实现主要有两种方式:

第一种:使用CellFactory

首先需要展示行头,然后通过设置CellFactory实现。

代码参考:

// turn on row headers 
c1FlexGrid1.HeadersVisibility = HeadersVisibility.All; 
//add row header column 
c1FlexGrid1.RowHeaders.Columns.Add(new Column()); 
// set CellFactory 
c1FlexGrid1.CellFactory = new MyCellFactory();

 

其次,重写Cell factory。

通过Text设置序号,并且通过HorizontalAlignment和VerticalAlignment属性设置居中显示。

代码参考:

public class MyCellFactory : CellFactory 
{ 
// static fields static Thickness _thicknessEmpty = new Thickness(0); 
public override void CreateRowHeaderContent(C1FlexGrid grid, Border bdr, CellRange rng) 
{ 
// first column contains numbers 
if (rng.Column == 0) 
{ 
var tb = new TextBlock(); 
tb.HorizontalAlignment = HorizontalAlignment.Center; 
tb.VerticalAlignment = VerticalAlignment.Center; 
tb.Text = string.Format("{0}", rng.Row + 1); 
bdr.Padding = _thicknessEmpty; 
bdr.Child = tb; 
} 
} 
}

 

 

 

添加的序号如图,居中显示:

flexgrid_indicator

 

本方法详细的代码,请下载示例:

第二种方法:循环设置

通过代码循环flexgrid的每一行,然后给行头设置序号。

代码参考:

for (int i = 0; i < c1FlexGrid.Rows.Count; i++)
{ 
c1FlexGrid.RowHeaders[i, 0] = _vm.PageSize * (_vm.PageIndex - 1) + i + 1; 
}

 

 

 本文完,如果有兴趣请关注更多资源。

 

更多资源

C1FlexGrid在线英文产品文档地址:

http://helpcentral.componentone.com/nethelp/C1FlexGridWPFSilv/ComponentOne%20FlexGrid%20for%20WPF%20and%20Silverlight.html

如果你对C1FlexGrid感兴趣,请到我们的官网下载最新版本:/download/?pid=6

如果你有疑问,可以到GCDN论坛获得技术支持:http://gcdn.grapecity.com.cn/showforum-138.html