如何找到在 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...
}
}
我有 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...
}
}