我的问题是;单击按钮时,我在DropDownList中的List, next 中输入项目。问题是我再点击按钮再次存在项目到我的DropDown。
如何解决此问题(对不起图像)?
List<string> companyList = new List<string>();
foreach (string item in companyList.ToList())
{
companyList.Remove(item); ----> this not working.......
}
foreach (SPListItem item in myItemCol)
{
companyList.Add(item["Company"].ToString());
}
companyList.Sort();
foreach (string item in companyList.Distinct())
{
ddComFilter.Items.Add(item.ToString());
}
答案 0 :(得分:3)
您可以使用Contains
方法检查它是否已存在
if(!ddComFilter.Items.Contains(items.ToString())
{
ddComFilter.Items.Add(item.ToString());
}
如果该项目尚未包含在下拉列表中,则只会添加该项目
答案 1 :(得分:3)
您可以在将项目添加到列表之前检查项目是否存在。
foreach (SPListItem item in myItemCol)
{
if(!companyList.Contains(item["Company"].ToString())
{
companyList.Add(item["Company"].ToString());
}
}
然后,您需要在向其添加值之前清除ddComFilter
:
companyList.Sort();
ddComFilter.Items.Clear();
foreach (string item in companyList.Distinct())
{
ddComFilter.Items.Add(item.ToString());
}
替代解决方案:
您可以使用生成的列表绑定ddComFilter
,而不是迭代集合并逐个添加。如果是这样,你不需要清除集合,删除项目等。代码将是:
ddComFilter.Datasource = companyList;
ddComFilter.DataBind();
这对您来说是一个有用的article
答案 2 :(得分:2)
在将列表添加为项目之前,您应该清除下拉列表:
companyList.Sort();
ddComFilter.Items.Clear(); // clear
foreach (string item in companyList.Distinct())
{
ddComFilter.Items.Add(item.ToString());
}