<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True">
            <asp:ListItem Value="0">0</asp:ListItem>
            <asp:ListItem Value="1">1</asp:ListItem>
            <asp:ListItem Value="2">2</asp:ListItem>
            <asp:ListItem Value="2">3</asp:ListItem>
    </asp:DropDownList>
DropDownList value 相同,选择的时候,会跑上去值相同的第一条
            <asp:ListItem Value="2">2</asp:ListItem>
            <asp:ListItem Value="2">3</asp:ListItem>
无论怎么选3.都是跳上去2
怎么解决这个问题

解决方案 »

  1.   

    把AutoPostBack="True"删除就可以了。不明白楼主这么写的意思,干嘛两个value值要一样呢??
      

  2.   

    回传后,再设置一下selectedIndex 看看
      

  3.   

    AutoPostBack="True"
    自动回发服务器属性删除就可以了~
      

  4.   

    关键问题在于有两个重复的value:2。
    把AutoPostBack="True"删除并不能解决根本的问题,因为一般来说页面上肯定还有其他的控件(如button)会导致postback。
      

  5.   

    确实2个相同的value,你可以把dropdownlist的onchange的事件贴出来
      

  6.   

    默认AutoPostBack 取值是false 也就是onchange调用的时候没有回传 设置为true 就在onchange调用的时候就自动回传到服务器 这个与上面没有关系
    我怀疑你绑定数据的时候 没有做判断  应该
    if(!IsPostBack)
    {
    //写绑定代码
    }
      

  7.   

    1.AutoPostBack 设为true
    2.pageload中绑定时
    if(!IsPostBack) 

     绑定代码 
    }
      

  8.   

    不关AutoPostBack="True"的事情Value要不相同
      

  9.   

     <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True">
                <asp:ListItem Value="0">0</asp:ListItem>
                <asp:ListItem Value="1">1</asp:ListItem>
                <asp:ListItem Value="2">2</asp:ListItem>
                <asp:ListItem Value="3">3</asp:ListItem>
        </asp:DropDownList>
      

  10.   

    看你的代码是因为value
    但初始化代码放在!ispostback中也很重要
      

  11.   

    value 是唯一的,一般都是绑ID和主键选取下拉,也是默认执行 DropDownList1.SelectedValue 优先选取前面的AutoPostBack="True" 这个是选取后触发服务器回送的,跟这个一毛钱关系都没有,激活这个后可以在他的SelectedIndexChanged 写一些改变下拉值后的代码
      

  12.   

    AutoPostBack="True" 去掉它就可以我在VS2003版本上试验过了没有问题
      

  13.   

    即使这个下拉菜单AutoPostBack="false",别的控件postback的时候照样会给你刷回去
      

  14.   

    关键是你的value置最好设成唯一的,你这样很容易出问题的