就是向ListBox    Add两个一样的ListItem,当选中第一个ListItem时,ListBox的SelectedIndex为0,当选中第二个ListItem时,ListBox的SelectedIndex还是为0,应该为一了才是我想要的。
注意我说的是:Add两个一样的ListItem
比如 listItem li1;
li1.Text="a";
li1.Value="1";
添加两次:
ListBox lb.Add(li1);
lb.Add(li1);

解决方案 »

  1.   

    在第二次选中前,ListBox.SelectedIndex = -1先
      

  2.   

    LISTBOX中如果有两个VALUE值相同的LISTITEM,那么即使选中了第二个,控件回访时还是只能认第一个LISTITEM,
    我觉得这应该这是LISTBOX在服务器端恢复的时候是根据VALUE值来判断选中项的。没有其它的办法.只有自己恢复LISTBOX的SELECTEDINDEX的值:
    1.在LISTBOX声明中加入ONCHANGE客户端事件
    2.在页面中加入一个隐藏控件 ,用来放INDEX值
    3。ONCHANGE如下
    function getindex()
    {
       var p = document.getElementById("ListBox1");
       var d = p.options;

       for(var i=0;i<d.length;i++)
       {
      
           if(d[i].selected)
           {
                 var h = document.getElementById("Hidden1");
                          h.value = i;
      
           }
       }
    }
    4.在服务端当要LISTBOX的selectedindex的值时,根据 h.value来设置LISTBOX的selectedindex
    5。这样就可以了
      

  3.   

    代码如下:
    页面:
    <form id="Form1" method="post" runat="server">
    <asp:ListBox id="ListBox1" onchange="get()" style="Z-INDEX: 101; LEFT: 392px; POSITION: absolute; TOP: 176px"
    runat="server">
    <asp:ListItem Value="21">21</asp:ListItem>
    <asp:ListItem Value="21">21</asp:ListItem>
    <asp:ListItem Value="wwew">wrewrwew</asp:ListItem>
    </asp:ListBox>
    <INPUT id="Hidden1" value="-1" style="Z-INDEX: 102; LEFT: 224px; POSITION: absolute; TOP: 248px" type="hidden"
    name="Hidden1" runat="server">
    <asp:Button id="Button1" style="Z-INDEX: 103; LEFT: 256px; POSITION: absolute; TOP: 80px" runat="server"
    Text="Button"></asp:Button>
    </form>
    <script language="javascript">
    function get()
    {
       var p = document.getElementById("ListBox1");
       var d = p.options;

       for(var i=0;i<d.length;i++)
       {
      
           if(d[i].selected)
           {
              var h = document.getElementById("Hidden1");
              h.value = i;
              alert(h.value);
           }
       }后台代码
    private void Button1_Click(object sender, System.EventArgs e)
    {
        int index = int.Parse(Hidden1.Value);
    ListBox1.SelectedIndex = index;
    Response.Write(ListBox1.SelectedIndex.ToString());
    }
      

  4.   

    呵呵,别太信任ASP。NET的那些控件,其实那些控件有很多缺陷
      

  5.   

    good good study,day day up