数据绑定组合框中不同的值组合框
问题描述:
我有一个表库存(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