1

在将项目从一个添加CheckBoxList到另一个时CheckBoxList如何CheckBoxList使用asp.net c#检查该项目是否已经存在于第二个中

我编写的要在两者之间移动的代码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按钮在列表之间移动项目。我需要在添加项目时进行验证。

请帮忙。谢谢..!!

4

3 回答 3

3

引用@Joel-Coehoorn 的另一个答案

您需要 System.Linq 的 using 指令。.Where() 是在 System.Linq 命名空间中定义的 IEnumerable(IList 实现)的扩展方法。

首先取所有选定的项目

var checkedItems = CheckBoxList2.Items.Where(i => i.Selected);

然后迭代。

foreach(var item in checkedItems)
{
   if(!CheckBoxList3.Items.Contains(item))
   {
       CheckBoxList3.Items.Add(item)
   }
}

那应该没问题。

于 2012-09-22T16:47:28.363 回答
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);
            }
        }
于 2012-09-22T17:50:29.293 回答
0

不使用第三个 CheckBoxList ..(修改了上面的 ans)

 foreach (ListItem li in CheckBoxList1.Items)
    {
        if (li.Selected)
        {
            if (!CheckBoxList2.Items.Contains(li))
            {
                CheckBoxList2.Items.Add(li);  
            }
        }

    }
于 2014-08-25T10:44:44.100 回答