在我的DataGridView
我显示了一个表中的一列。在这个表格中,我有一列指向另一个表格中的项目。正如你可能已经猜到的那样,我想在一列中的网格中显示第二个表中的一些文本值,而不是ItemID。 我在网上找不到一个正确的例子如何做到这一点。如何在DataGridView中创建LookUp字段?
让我们假设,我在databes两个表:
表的用户:
UserID UserName UserWorkplaceID
1 Martin 1
2 John 1
3 Susannah 2
4 Jack 3
表工作场所:
WorkplaceID WorkplaceName
1 "Factory"
2 "Grocery"
3 "Airport"
我有一个无类型的数据集dsUsers
,一个结合源bsUsers
,和两个用于填充数据集的DataAdapters
(daUsers
,daWorkplaces
)。对此我进行
代码:
daUsers.Fill(dsUsers);
daWorkplaces.Fill(dsUsers);
bsUsers.DataSource = dsUsers.Tables[0];
dgvUsers.DataSource = bsUsers;
在这一点上我在dgvUsers
三列,用户名,用户名和UserWorkplaceID看到。然而,而不是UserWorkplaceID和值1,2,3我想看到“工厂”,“杂货店”等...
所以我已经添加了另一列dgvUsers
称为“WorkplaceName”,并在我的代码我试图将其绑定到新创建的关系:
dsUsers.Relations.Add("UsersWorkplaces", dsUsers.Tables[1].Columns["WorkplaceID"], dsUsers.Tables[0].Columns["UserWorkplaceID"]);
WorkplaceName.DataPropertyName = "UsersWorkplaces.WorkplaceName";
不幸的是,这是行不通的。关系创建时没有错误,但运行该程序后,此列中的字段为空。
我做错了什么?
我想问一个关于DataGridView中的LookUp组合框的例子,它允许我改变UserWorkplaceID而不是数值,它将显示一个在WorkplaceName下的tex值。
谢谢你的时间。
谢谢,我在考虑ComboBox和TextBox在他们的行为/属性上是相似的。我错了。 – Wodzu 2010-07-26 06:38:51