我有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);
}
实际上,在活动中,我不知道如何获取上次检查的物品。
答案 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...
}
}