【问题标题】:Winforms UltraGrid Infragistics grouping by two columnsWinforms UltraGrid Infragistics 按两列分组
【发布时间】:2018-01-31 12:37:11
【问题描述】:

我正在开发一个 WinForms vb.net 应用程序,您可以在该应用程序中看到如图所示的网格,我需要做的是按前两列(“Grupo”和“Area” )。

正如您在图片中看到的,我的 SQL 选择语句返回许多相同的“Grupo”和“Area”,但具有不同的“标识”(最后一个可见列),我需要呈现它的方式或多或少相同您目前可以在图片中看到,但在一侧有一个 + 号之类的东西,当您按下它时,它会展开并显示所有行和列的完整列表(未分组),但每个不同的“标识”都有一行。

我已经设法使用 SortedColums 使用下一个方法:

ulgListaSel.DisplayLayout.ViewStyleBand = Infragistics.Win.UltraWinGrid.ViewStyleBand.OutlookGroupBy

Dim band As UltraGridBand = ulgListaSel.DisplayLayout.Bands(0)
Dim sortedColumns As SortedColumnsCollection = band.SortedColumns
sortedColumns.Add("c_area", False, True)
sortedColumns.Add("c_grupo", False, True)

但数据没有按照我想要的方式显示。

我使用下面的代码得到的结果如图 2 所示,但您会看到在展开之前仅显示“区域”列,并且默认情况下,我需要显示具有相同值的所有列(除“标识”之外的所有列) .

顺便说一下,我使用的是 UltraGrid v14.2

提前致谢。

【问题讨论】:

    标签: vb.net winforms infragistics ultrawingrid


    【解决方案1】:

    如果我在这里正确地跟随你,你想为每一行设置一个组,因为唯一的区别在于“identificacion”列值?或者您想查看 groupByRow 中除“标识”之外的所有值,并且只有一个组?

    在第二种情况下,您最终将只有一组具有所有列值。

    在这两种情况下,您都可以使用根带 (0) 列集合在 UltraGrid 的 InitializeLayout 事件中创建和添加一个新的未绑定列,然后在 IntializeRow 事件中根据您的要求填充该新列的值,要么使用所有单元格的值(最终得到与“identificacion”列中差异数量相同的组数),或者连接所有列的值,而不使用“identificacion”中的值,最终只会有一个组。

    同样,一旦你这样做了,你将不得不再次使用 UltraGrid 的 InitializeLayout 事件,并通过 UltraGrid 分组,通过新填充的未绑定列,通过将其添加到已排序的列,使用与用于在那里添加其他列。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多