for (int i = listBox1.Items.Count - 1; i >= 0; i--)
            {
                if (listBox1.SelectedIndex == i)
                {
                    listBox1.Items.RemoveAt(i);
                }
            }

解决方案 »

  1.   

    tantj(Tam),你的方法我用了,不行,不管我选哪一项,还老是从第一项删除。
      

  2.   

    试试这个
    //删除ListBox中的节点
    function RemoveOption( objListBox, isRemoveAll )
    {
    if( isRemoveAll )//删除所有节点
    {
    for( var i=objListBox.options.length-1;i>-1;i-- )
    objListBox.removeChild( objListBox.options[i] );
    }
    else//删除选中的节点
    objListBox.removeChild( objListBox[objListBox.selectedIndex] );
    }
      

  3.   


    ListBox1.Items.RemoveAt(ListBox1.SelectedIndex);
      

  4.   

    for(int i=0;i<listbox.Items.Count-1;i++)
    {
    if(listbox.Items[i].Selected)
    {
    listbox.Items.RemoveAt(i);
    }
    }
    这样也会从第一项删除吗?若是这样,应考虑从LISTBOX上解决。
      

  5.   

    这样写不会有问题
    这个listbox是不是动态生成的?怎样绑定的?
      

  6.   

    是动态生成的。从另外一个listbox上 代码如下
    private void FillMemberList(string memberlist)
    {
    if(memberlist!="")
    {
    string[] member = memberlist.Split(';');
    for(int i=0,j=0;i<member.Length/2;i++)
    { Person person = new Person();
    string phone=person.GetPhoNumByName(member[j]);
    if(phone=="")
    phone="0";
    list_member.Items.Add(new ListItem(member[j].ToString(),phone));
    j=j+2;
    }
    }
    }
      

  7.   

    int listCount = listbox.Items.Count;
    for (int i = listCount;i >= 0;i --)
    {
        if (listbox.Items[i].Selected)
        {
            listbox.Items.RemoveAt(i);
        }
    }不知道是不是有用,另外能不能看下是不是你的数据绑定有问题?
      

  8.   

    上面写错了,应该是for(int i = listCount -1...
      

  9.   

    不论你的ListBox是否为动态生成,我在上面给出的方法都可以做到你想要的效果。关键的问题是上面方法中objListBox参数你给的是否正确。即使是动态生成,最终也是以静态的html格式展现在浏览器上的,此时你需要找到动态生成的ListBox的ClientID,然后传入我提供的方法中。你可以在方法里的第一行加一句alert(objListBox),查看返回的是否为[Object],如果不是,即说明你在客户端根本没有得到这个ListBox对象,那么,任何的方法都没有办法帮到你了
      

  10.   

    跟宗一下看看listbox.Items[i].Selected的值,
    是不是没有传回服务器端啊
     if (ListBox.SelectedIndex > -1) 加上这个再循环吧!
      

  11.   

    因为你的ListBox是动态生成的,所以你必须在PageLoad函数结束之前将这个Listbox重新生成出来,这样才能把它的属性还原
      

  12.   

    另外,说点儿题外话
    list_member.Items.Add(new ListItem(member[j].ToString(),phone));
    你代码中的这一句存在性能漏洞,感兴趣的朋友可以来讨论一下