ASP.NET SelectedValue无效,因为它不存在于项列表中。参数名称:value

时间:2012-11-29 15:18:42

标签: asp.net

我收到DropDownList11的错误,说“'DropDownList11'有一个无效的SelectedValue,因为它在项目列表中不存在。 参数名称:值“。使用SQLDatasource的其他下拉列表工作正常。我在编辑DetailsView中手动创建此下拉列表。一旦选中并单击更新,它将把它发送到SQL Server。请帮忙!这里有一个代码,

<EditItemTemplate>
                    <asp:DropDownList ID="DropDownList11" runat="server" SelectedValue='<%# Bind("Version") %>'>
                        <asp:ListItem Selected="True"></asp:ListItem>
                        <asp:ListItem>Oracle 11g</asp:ListItem>
                        <asp:ListItem>Oracle 11g R2</asp:ListItem>
                        <asp:ListItem>Server 2008</asp:ListItem>
                        <asp:ListItem>Server 2008 R2</asp:ListItem>
                        <asp:ListItem>Server 2012</asp:ListItem>
                        <asp:ListItem>SQL Svr 2008 R2 SS%S</asp:ListItem>
                        <asp:ListItem>SQL Svr 2012 SS%S</asp:ListItem>
                    </asp:DropDownList>
                </EditItemTemplate>

3 个答案:

答案 0 :(得分:0)

我的猜测是你有约束力:

<%# Bind("Version") %>

版本的值不在您创建的列表中。我建议你从你的代码中取出它,看它是否有效。如果确实如此,那么您知道在尝试选择它之前需要检查该值并确保它在列表中。

答案 1 :(得分:0)

下拉列表中没有值(Oracle 11g,Oracle 11g R2,...)可以与您绑定的值匹配(SelectedValue ='&lt;%#Bind(“Version”)%&gt;')

从下拉列表中删除绑定并添加asp标签。将值绑定到它,您将看到您尝试绑定的值。以下是标签的示例代码:

<asp:Label ID="Label1" runat="server" Text="<%# Eval("Version").ToString() %>"></asp:Label>

答案 2 :(得分:0)

与错误一样,db中“Version”的值可能不在您指定的预定义值列表中。尝试暂时删除下拉列表,然后执行以下操作:

<asp:TemplateField>
   <ItemTemplate><%#Eval("Version")%></ItemTemplate> 
</asp:TemplateField>

所以你可以看到版本的价值是什么,以确保你在下拉列表中有它。