如何找到在 CheckBoxList 中检查过的项目

How to find what item exaclty checked in 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);
}

其实在活动中,我不知道如何获得我上次检查的项目

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

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
}

希望这对您有所帮助。几周前我遇到了完全相同的情况:)

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

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