两个ListBox中的itme相互转移过程中的一个问题

我们知道要是实现ListBox1中的项目向ListBox2中转移,其实现过程是很易想象。就是将Listbox2中添加ListBox1中选定的项,然后在将ListBox1中的项删除就可以了。不过实现过程中,我的界面出现了下面的情况,在单击选择则会报不许选择多项的问题。

两个ListBox中的itme相互转移过程中的一个问题

下面是两种实现的不同代码。

protected void ImgbtnReturn_Click1(object sender, ImageClickEventArgs e)

{

//两个listbox间移动

if (LtbSelectedShops.SelectedIndex >= 0)

{

LtbCanBeSelectedShops.Items.Add(LtbSelectedShops.SelectedItem);

}

if (LtbSelectedShops.SelectedIndex >= 0)

{

LtbSelectedShops.Items.Remove(LtbSelectedShops.SelectedItem);

}

}

protected void ImgbtnReturn_Click1(object sender, ImageClickEventArgs e)

{

//将选中项目退回原位置并在现在所在位置移除

if (LtbSelectedShops.SelectedIndex >= 0)

{

LtbCanBeSelectedShops.Items.Add(new ListItem(LtbSelectedShops.SelectedItem.Text, LtbSelectedShops.SelectedItem.Value));

}

//移除

if (LtbSelectedShops.SelectedIndex >= 0)

{

LtbSelectedShops.Items.Remove(LtbSelectedShops.SelectedItem);

}

}

使用第一种方法时,出现图片所示情况,在单击则会有错误产生。第二种则不会。

对比中可以发现,第一种方法是在listBox2中直接添加了listBox1选中的项目,而第二中方法是添加了一个新的listItem,只不过这个ListItem项的text值和values值等于listBox1选中项的值而已。

在这次试验中两个listBoxSeletionModel属性均是Single。如果将Listbox2的这个属性设为Multiple的话,则不会出现这个问题。

属性为listbox2中,其状态仍未选中,当再次移动另一个项到<FONT face=""">listBox2时,其状态还是选中,则出现了选择多个的错误。

在编写代码过程中已经发现了不同,但简单运行,这个问题不易发现。没做出比较,学习,导致后来得花时间查错修改。在今后的生活学习中要洞察不同,比较学习。