我正在向我的用户展示 UltraGrid 中来自数据库的项目列表。现在,我有一个需求,我找不到任何有用的东西或任何清晰的文档,也没有可以学习的教程。
我需要扩展这个网格的功能,设置一个(+)扩展功能,当用户按下该按钮(+)时,该行会扩展并显示历史记录中的项目。
世界上任何人都可以帮助我解决这个问题或指出我可以学习的适当文档吗?
很感谢。
我正在向我的用户展示 UltraGrid 中来自数据库的项目列表。现在,我有一个需求,我找不到任何有用的东西或任何清晰的文档,也没有可以学习的教程。
我需要扩展这个网格的功能,设置一个(+)扩展功能,当用户按下该按钮(+)时,该行会扩展并显示历史记录中的项目。
世界上任何人都可以帮助我解决这个问题或指出我可以学习的适当文档吗?
很感谢。
诀窍很简单。您只需要将网格绑定到包含两个(或更多)表和将表粘合在一起的正确 DataRelation 对象的 DataSet。
您还需要确保属性grid.DisplayLayout.ViewStyle设置为MultiBand(它是默认设置,因此应该已经设置)。
因此,例如,在这个伪代码中,我加载了两个表并将它们添加到数据集,然后定义所涉及的列之间的假定关系,最后将数据集绑定到网格。
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]),您将在其中看到与第一个波段中的行相关的历史记录行