我向我的用户展示了UltraGrid中来自数据库的项目列表。 现在,我有一个需要,我没有找到任何有用的或任何明确的文档,也没有我可以学习的教程。
我需要扩展此网格的功能,设置(+)展开功能,当用户按下该按钮(+)时,该行会展开并显示历史记录中的项目。
世界上任何人都可以帮助我解决这个问题或指出我可以学习的适当文档吗?
非常感谢。
答案 0 :(得分:2)
诀窍很简单。您只需将网格绑定到包含两个(或更多)表的DataSet以及将表粘合在一起的正确DataRelation对象。
您还需要确保属性 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创建两个Band(grid.DisplayLayout.Bands []),在第一个Band(Band [0])中你会发现Items数据表的行,每行都有它的[+]按钮单击并展开第二个Band(Band [1]),您将在其中看到与第一个Band中的行相关的History行