1

CheckBoxListアイテムを次々に追加するときに、 asp.net c#を使用CheckBoxListしてアイテムが2番目にすでに存在するかどうかを確認する方法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ボタンを使用してリスト間でアイテムを移動しています。アイテムを追加するときに検証する必要があります。

親切に助けてください。ありがとうございました..!!

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

3番目の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 に答える