如何找到CheckBoxList中检查的项目

时间:2018-06-20 15:57:26

标签: c# asp.net checkboxlist

我有2个并排的CheckBoxList。我的目的是当我检查List1中的一个项目时,将该项目添加到第二个列表中。下面是我编写的代码。

问题在于它总是添加我选择的第一项。

protected void lbxSource_SelectedIndexChanged(object sender, EventArgs e)
{
    ListItem itm = lbxSource.SelectedItem;
    ListItem newItem = new ListItem(itm.Text, itm.Value);
    lbTrg.Items.Add(newItem);
}

实际上,在活动中,我不知道如何获取上次检查的物品。

2 个答案:

答案 0 :(得分:0)

如果将项目添加到第二个列表后,您清除了第一个列表中的选定项目,则下次您在事件中获得准确的选中项目。

protected void lbxSource_SelectedIndexChanged(object sender, EventArgs e)
{
    ListItem itm = lbxSource.SelectedItem;
    ListItem newItem = new ListItem(itm.Text, itm.Value);
    lbTrg.Items.Add(newItem);
    lbxSource.ClearSelection(); // This line is the answer to your question
}

希望这会有所帮助。几周前我有完全一样的情况:)

答案 1 :(得分:0)

您可以遍历所有选定的项目,如果该项目不在第二个列表中,则将其添加。

foreach (ListItem li in lbxSource.Items)
{
    if (li.Selected)
    {
        // remove/add...
    }
}