在我的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