windows - 具有可扩展行的 Infragistics UltraGrid

标签 windows winforms infragistics expand ultrawingrid

我正在向我的用户显示 UltraGrid 中来自数据库的项目列表。 现在,我只有一个需求,但我没有找到任何有用的内容或任何清晰的文档,也没有可供我学习的教程。

我需要扩展此网格的功能,设置一个 (+) 展开功能,当用户按下该按钮 (+) 时,该行会展开并显示历史记录中的项目。

世界上有谁可以帮助我解决这个问题或指示我可以学习的适当文档吗?

非常感谢。

最佳答案

技巧很简单。您只需将网格绑定(bind)到包含两个(或更多)表的 DataSet 以及将表粘合在一起的正确 DataRelation 对象。
您还需要确保属性grid.DisplayLayout.ViewStyle设置为MultiBand(这是默认设置,因此应该已经设置)。

因此,例如,在这个伪代码中,我加载两个表并将它们添加到数据集,然后定义所涉及的列之间的假设关系,最后将数据集绑定(bind)到网格。

DataSet ds = new DataSet();
DataTable dtItems = YourLoadDataTableMethodHere("Items");
ds.Tables.Add(dtItems);
DataTable dtHistory = YourLoadDataTableMethodHere("History");
ds.Tables.Add(dtHistory);
DataRelation rel = new DataRelation("Items_History_Relation",
                        dtItems.Columns["IDItem"],
                        dtHistory.Columns["IDItem"]);
ds.Relations.Add(rel);
grid.DataSource = ds;

这将自动强制 UltraGrid 创建两个 Bands (grid.DisplayLayout.Bands[]),在第一个 Band (Band[0]) 中,您将找到 Items 数据表的行,每行都有其 [+]按钮单击并展开第二个频段 (Band[1]),您将在其中看到与第一个频段中的行相关的历史记录行

关于windows - 具有可扩展行的 Infragistics UltraGrid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12805595/

相关文章:

c++ - 在 C++ 中调用 VB 的 CreateObject 方法

c++ - POINTER_32 - 它是什么,为什么?

c# - 单线程单元问题

jquery - 如何获取igdatachart上y轴的最高值

python - 在 Windows 10 中获取启动时间并不总是相同的时间

windows - MS-DOS 将文件内容通过管道传送到变量中

c# - 如何删除 ToolStripMenuItem 中的右侧空白区域

c# - Winform,带有图像和文本但没有控制按钮的自定义标题栏?

wpf - xamdatetimeeditor 设置默认当前时间和日期

javascript - 多次调用排序在 ig 对话框 Ignite UI 控件上使用 igGrid