使用FlexGrid > Cell > 多单元格行和列标题 |
大多数的Grid都支持行和列标题,用来在列上方显示一个Header,同时可以表示包含选择区域的行。
C1FlexGrid将此概念向前延伸一步,支持多单元格Header 。比如说,您可以在列Header上显示两行,一行显示年份,一行显示季度。下面是一些演示如何设置的代码:
C# |
拷贝代码
|
---|---|
// 添加一个额外的列标题行 var ch = fg.ColumnHeaders; ch.Rows.Add(new Row()); // 填充标题行 for (int c = 0; c < ch.Columns.Count; c++) { ch[0, c] = 2009 + c / 4; // row 0: year ch[1, c] = string.Format("Q {0}", c % 4 + 1); // row 1: quarter } |
这段代码生成一个Grid,看起来像这样:
注意这里显示列标题为两行。在传统的网格中,可以使用带有折行的列头来实现类似的效果。当我们将单元格合并到顶部的固定行时,这些差异会变得明显,此时,在同一年的列是自动合并的。它只需要两行代码即可实现:
C# |
拷贝代码
|
---|---|
// 添加一个额外的列标题行 var ch = fg.ColumnHeaders; ch.Rows.Add(new Row()); // 填充标题行 for (int c = 0; c < ch.Columns.Count; c++) { ch[0, c] = 2009 + c / 4; // row 0: year ch[1, c] = string.Format("Q {0}", c % 4 + 1); // row 1: quarter } // 合并顶部的固定行 fg.AllowMerging = AllowMerging.All; ch.Rows[0].AllowMerging = true; |
这里显示的是结果:
请注意这里表示同一年的单元格是如何在顶部固定行合并,以使得显示更加清晰的。在图像显示时,可以使用相同的机制合并行Header 。