private void Button3_Click(object sender, System.EventArgs e)
{
//ListBox2.SelectionMode = SelectionMode.MultiExtended;
if (ListBox2.SelectedIndex!=-1)
{ for(int i=0;i<ListBox2.Items.Count;i++)
{
if(ListBox2.Items[i].Selected )
{
Response.Write("<script>alert ('"+i+" ')</script>");
Response.Write("<script>alert ('"+ListBox2.Items[i].Value.Trim().ToString()+" ')</script>");
ListItem mm=new ListItem(ListBox2.Items[i].Text.Trim().ToString(),ListBox2.Items[i].Value.Trim().ToString());
if (null==ListBox1.Items.FindByValue(ListBox2.Items[i].Value.Trim().ToString()) )
{
ListBox1.Items.Add(mm);
}
else
{
Response.Write("<script>alert('对不起!"+ListBox2.SelectedItem.Text.Trim().ToString()+"已存在列表中')</script>");
}
ListBox2.Items.Remove(ListBox2.Items[i] );
}
}
}
else
{
Response.Write("<script>alert('请选择用户!')</script>");
}
}程序不会报错,但是在我多选的时候却没有办法将所有选中的项移动到别一个ListBox谢谢了
{
//ListBox2.SelectionMode = SelectionMode.MultiExtended;
if (ListBox2.SelectedIndex!=-1)
{ for(int i=0;i<ListBox2.Items.Count;i++)
{
if(ListBox2.Items[i].Selected )
{
Response.Write("<script>alert ('"+i+" ')</script>");
Response.Write("<script>alert ('"+ListBox2.Items[i].Value.Trim().ToString()+" ')</script>");
ListItem mm=new ListItem(ListBox2.Items[i].Text.Trim().ToString(),ListBox2.Items[i].Value.Trim().ToString());
if (null==ListBox1.Items.FindByValue(ListBox2.Items[i].Value.Trim().ToString()) )
{
ListBox1.Items.Add(mm);
}
else
{
Response.Write("<script>alert('对不起!"+ListBox2.SelectedItem.Text.Trim().ToString()+"已存在列表中')</script>");
}
ListBox2.Items.Remove(ListBox2.Items[i] );
}
}
}
else
{
Response.Write("<script>alert('请选择用户!')</script>");
}
}程序不会报错,但是在我多选的时候却没有办法将所有选中的项移动到别一个ListBox谢谢了
if (null==ListBox1.Items.FindByValue(ListBox2.Items[i].Value.Trim().ToString()) )
因为当我选中五个的时候还可以增加三个到别一个ListBox里面啊
{
if (lbSource.SelectedIndex >= 0)
{
ArrayList ari = new ArrayList();
for (int i = 0; i <= lbSource.Items.Count - lbSource.SelectedIndex - 1; i++)
{
ListItem item = lbSource.Items[lbSource.SelectedIndex + i]; if (item.Selected == true)
{
ListItem newItem = new ListItem();
newItem.Text = item.Text;
newItem.Value = item.Value;
newItem.Selected = false;
lbDes.Items.Add(newItem); ari.Add(item);
}
}
for (int n = 0; n < ari.Count; n++)
{
lbSource.Items.Remove((ListItem) ari[n]);
}
}
}
谢谢!我也找到一种办法了,并找到了原因所在
ListBox在删除的时候,每删除一次它的item索引会重置
如删除item[1]时,则itme[2]会变为item[1]
所以最好的办法就是从大到小的来删除