2
我有一個表庫存(ItemId,Name,Size,Price,otherinfo)其中ItemId是主鍵,Name,Size,Price是唯一的。
當我用名稱綁定組合框時,所有重複名稱都會出現,而我希望每個名稱只出現一次,Size也會發生同樣的情況。數據綁定組合框中不同的值組合框
如何加載綁定到數據源的組合框中的唯一值?
我有一個表庫存(ItemId,Name,Size,Price,otherinfo)其中ItemId是主鍵,Name,Size,Price是唯一的。
當我用名稱綁定組合框時,所有重複名稱都會出現,而我希望每個名稱只出現一次,Size也會發生同樣的情況。數據綁定組合框中不同的值組合框
如何加載綁定到數據源的組合框中的唯一值?
你可以這樣做,(你可能不得不調整它有點complie併爲你工作)
ddlName.DataSource = items.Select(item=>item.Name).Distinct().ToList();
ddlName.DataBind();
ddlSize.DataSource = items.Select(item=>item.Size).Distinct().ToList();
ddlSize.DataBind();
ddlPrice.DataSource = items.Select(item=>item.Price).Distinct().ToList();
ddlPrice.DataBind();
,然後找到基於三個下拉列表中選擇條目標識。
這是C#並假設你有LINQ
希望這有助於。
Edit--(如果沒有LINQ)
IList<string> names = new List<string>();
foreach (Item item in Items)
if (!names.Contains(item.Name))
names.Add(name);
ddlName.DataSource = names;
ddlName.DataBind();
//Do similar for price and size.
編輯(使用SQL命令)
select distinct Name from Item
select distinct Size from Item
select distinct Price from Item
如果你想它綁定到唯一的名稱,那麼你就不能綁定到ITEMID 。據我所知你可以有像ID = 1,名稱= A; ID = 2,Name = A,這意味着這些記錄已經是唯一的,因爲它們的密鑰是不同的。如果您只綁定到名稱,您如何知道用戶是否從ID 1或ID 2中選擇了名稱A?我希望這是有道理的。 – Divi 2011-01-20 23:30:33
是的,我想綁定到名稱。我還有兩個大小和價格的組合框。因此,如果用戶選擇籃子大,20將返回一個唯一的ItemId。 – SMUsamaShah 2011-01-20 23:33:49