两个ListBox中的itme相互转移过程中的一个问题
我们知道要是实现ListBox1中的项目向ListBox2中转移,其实现过程是很易想象。就是将Listbox2中添加ListBox1中选定的项,然后在将ListBox1中的项删除就可以了。不过实现过程中,我的界面出现了下面的情况,在单击选择则会报不许选择多项的问题。
下面是两种实现的不同代码。
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选中项的值而已。
在这次试验中两个listBox的SeletionModel属性均是Single。如果将Listbox2的这个属性设为Multiple的话,则不会出现这个问题。
属性为listbox2中,其状态仍未选中,当再次移动另一个项到<FONT face=""">listBox2时,其状态还是选中,则出现了选择多个的错误。
在编写代码过程中已经发现了不同,但简单运行,这个问题不易发现。没做出比较,学习,导致后来得花时间查错修改。在今后的生活学习中要洞察不同,比较学习。