我得到了错误的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>发布于 2012-11-29 23:28:43
下拉列表中没有已存在的值(Oracle11g、Oracle11g R2等)可以与您正在绑定的值匹配(SelectedValue='<%# Bind("Version") %>')。
从下拉列表中删除绑定并添加asp标签。将值绑定到它,您将看到您试图绑定的值是什么。以下是label的示例代码:
<asp:Label ID="Label1" runat="server" Text="<%# Eval("Version").ToString() %>"></asp:Label>发布于 2012-11-29 23:25:46
我猜你是在绑定:
<%# Bind("Version") %>并且Version的值不在您创建的列表中。我建议把它从你的代码中去掉,看看它是否能工作。如果是这样,那么您就知道您需要检查该值,并确保它在您尝试选择它之前在列表中。
发布于 2012-11-29 23:29:50
正如错误所说,db中的"Version“值可能不在您指定的预定义值列表中。尝试临时删除下拉列表,然后执行以下操作:
<asp:TemplateField>
<ItemTemplate><%#Eval("Version")%></ItemTemplate>
</asp:TemplateField>因此,您可以查看Version的值是什么,以确保您的下拉列表中包含它。
https://stackoverflow.com/questions/13628914
复制相似问题