1

当我按 [Col] 列对超网格进行分组时,我想按行获取分组的计数,我的意思是在按 [Col] 列分组之后,最终可能会出现两个逐行分组。如何按行获取组的计数?

4

2 回答 2

1

完成分组后,Grid 的 Rows 集合将包含 GroupByRows,因此您可以检查 grid.Rows.Count。

于 2013-01-03T22:23:52.887 回答
0

对于整个网格,我能够获取所有ChildBands顶级行的所有行,然后计算IsGroupByRow它们拥有的行数:

var childBands = UltraGrid1.Rows.SelectMany(x => x.ChildBands.Cast<UltraGridChildBand());
var allChildRows = childBands.SelectMany(y => y.Rows));
var groupByRowCount = allChildRows.Count(x => x.IsGroupByRow);

如果您有要检查的特定行,可以执行以下操作:

var childBands = specificRow.ChildBands.Cast<UltraGridChildBand>();
var groupByRowCount = childBands.SelectMany(x => x.Rows).Count(x => x.IsGroupByRow)

这感觉就像是获取子行对象的一种非常迂回的方法......当然有更好的方法。


如果您按多列分组,我的示例将不起作用。问题似乎是,从这篇文章中引用 Mike Saltzman 的话:

GroupByRow 永远不会有 ChildBands 集合。ChildBand 仅存在于数据行上。您需要做的是将该行转换为 UltraGridGroupByRow 并使用 Rows 集合获取其子行。

Infragistics 网站上有一个示例,我相信它与您正在寻找的内容非常接近。

于 2016-01-28T23:02:35.760 回答