从一个CheckBoxList
向另一个CheckBoxList
添加项目时如何使用asp.net c#检查该项目是否已存在于第二个CheckBoxList
中
我在CheckBoxLists
之间移动的代码是:
protected void add_Click(object sender, EventArgs e)
{
for (int i = 0; i <= CheckBoxList2.Items.Count - 1; i++)
{
if (CheckBoxList2.Items[i].Selected)
{
CheckBoxList3.Items.Add(CheckBoxList2.Items[i]);
CheckBoxList3.ClearSelection();
}
}
}
我正在使用 add_Click 按钮在列表之间移动项目。 我需要在添加项目时进行验证。
请帮助。谢谢.. !!
答案 0 :(得分:3)
来自@ {Joel-Coehoorn的another answer:
您需要System.Linq的using指令。 .Where()是IEnumerable(IList实现)的扩展方法,它在System.Linq命名空间中定义。
首先获取所有选定的项目
var checkedItems = CheckBoxList2.Items.Where(i => i.Selected);
然后迭代。
foreach(var item in checkedItems)
{
if(!CheckBoxList3.Items.Contains(item))
{
CheckBoxList3.Items.Add(item)
}
}
应该没问题。
答案 1 :(得分:1)
这将有效: -
for (int i = 0; i <= CheckBoxList2.Items.Count - 1; i++)
{
if (CheckBoxList2.Items[i].Selected)
{
CheckBoxList4.Items.Add(CheckBoxList2.Items[i].ToString().Trim());
}
}
foreach (ListItem item in CheckBoxList4.Items)
{
if (!CheckBoxList3.Items.Contains(item))
{
CheckBoxList3.Items.Add(item);
}
}
答案 2 :(得分:0)
不使用第三个CheckBoxList ..(修改上面的和)
foreach (ListItem li in CheckBoxList1.Items)
{
if (li.Selected)
{
if (!CheckBoxList2.Items.Contains(li))
{
CheckBoxList2.Items.Add(li);
}
}
}