1

我收到 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>
4

3 回答 3

0

我猜你是有约束力的:

<%# Bind("Version") %>

并且 Version 的值不在您创建的列表中。我建议将其从您的代码中取出并查看它是否有效。如果是,那么您知道您需要检查该值并确保它在列表中,然后再尝试选择它。

于 2012-11-29T15:25:45.507 回答
0

下拉列表中的任何值(Oracle 11g、Oracle 11g R2、...)都不能与您正在绑定的值匹配(SelectedValue='<%# Bind("Version") %>')。

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

<asp:Label ID="Label1" runat="server" Text="<%# Eval("Version").ToString() %>"></asp:Label>
于 2012-11-29T15:28:43.027 回答
0

就像错误所说的那样,数据库中的“版本”值可能不在您指定的预定义值列表中。尝试暂时删除下拉列表,然后执行以下操作:

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

这样您就可以看到 Version 的值是什么,以确保您在下拉列表中拥有它。

于 2012-11-29T15:29:50.003 回答