<asp:DropDownList id="DropDownList2" Width="144px" SelectedValue='<%#DataBinder.Eval(Container.DataItem, "等级")%>' Runat=server > 
<asp:ListItem>普通</asp:ListItem>
<asp:ListItem>VIP</asp:ListItem>
</asp:DropDownList>想用下拉列表绑定数据库的某一字段,绑定的程序用的是aspnetpager的样式写的。一开始在access数据库下很正常,但当我换成了sql server数据库后同样的表竟然一直出现以下错误,这个问题如何解决?同样的表用同样的代码绑定但换了数据库就出现问题了。
///////////////////////////////////////////////////////////////////////////////////////指定的参数已超出有效值的范围。参数名: 普通 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.ArgumentOutOfRangeException: 指定的参数已超出有效值的范围。参数名: 普通 源错误: 
行 64:  <td>
行 65:  <div align="center" style="FONT-SIZE: x-small">
行 66:  <asp:DropDownList id="DropDownList2" Width="144px" SelectedValue='<%#DataBinder.Eval(Container.DataItem, "等级")%>' Runat=server > 
行 67:  <asp:ListItem>普通</asp:ListItem>
行 68:  <asp:ListItem>VIP</asp:ListItem>
 

解决方案 »

  1.   

    what if you do<asp:DropDownList id="DropDownList2" Width="144px" SelectedValue='<%# DataBinder.Eval(Container.DataItem, "等级").ToString().Trim() %>' Runat=server > 
    <asp:ListItem Value="普通">普通</asp:ListItem>
    <asp:ListItem Value="VIP">VIP</asp:ListItem>
    </asp:DropDownList>also make sure your 等级 value doesn't have leading or trailing space in it
      

  2.   

    因为
    <asp:ListItem>普通</asp:ListItem>
    <asp:ListItem>VIP</asp:ListItem>
    缺少value,所以读取到的值“普通”无法和列表匹配,加value就可以了
    <asp:ListItem Value="普通">普通</asp:ListItem>
    <asp:ListItem Value="VIP">VIP</asp:ListItem>
      

  3.   

    总结下:
    看来主要问题还是空格造成的, 列表项中是否有value值并不影响
    <asp:DropDownList id="DropDownList2" Width="144px" SelectedValue='<%# DataBinder.Eval(Container.DataItem, "等级").ToString().Trim() %>' Runat=server > 
    <asp:ListItem>普通</asp:ListItem>
    <asp:ListItem>VIP</asp:ListItem>
    </asp:DropDownList>