首先有一些问题(DropDownList有一个无效的SelectedValue,因为它不存在于项目列表中,DropDownList"有一个无效的SelectedValue,因为它不存在于项目列表中",asp:DropDownList错误:'DropDownList1'有一个SelectedValue,它是无效的,因为它不存在于项目列表中)关于这一点,并提出了解决办法,但我的问题是为什么会发生这种情况.更重要的是我对建议的解决方法不满意,我发现它们非常难看.
所以有一个页面有一个下拉列表和一个按钮:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm2.aspx.cs" Inherits="TestWebApplication.WebForm2" ViewStateMode="Disabled" %>
<html lang="en" >
<body>
<form id="form1" runat="server">
<div>
<asp:DropDownList ID="ddlTest" runat="server">
</asp:DropDownList>
<asp:Button Text="Test" ID="btnTest" runat="server" onclick="btnTest_Click" />
</div>
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我将ddlTest与Page_Init上的一些项绑定,然后在btnTest_Click中再次绑定:
using System;
namespace TestWebApplication
{
public partial class WebForm2 : System.Web.UI.Page
{
protected void Page_Init(object sender, EventArgs e)
{
//SelectedIndex is -1, SelectedValue is "", SelectedItem is null
ddlTest.DataSource = new[] { 1, 2, 3 };
ddlTest.DataBind();
ddlTest.SelectedValue = "3";
} …Run Code Online (Sandbox Code Playgroud) 我有一个asp.net 2.0网站,有许多asp:DropDownList控件.DropDownList控件包含标准信息city,state,county等... info.除了标准代码之外,该站点还具有用户可以自行配置的自定义代码.例如,动物下拉列表可能包含值狗,猫,鱼等...
我正在从我创建的SQL 2005表中弹出DropDownList,例如tblCodes
一切都很好,用户可以使用众多DropDownList控件添加订单,从列表中选择项目.
如果用户想要更改其中一个自定义下拉列表,则会出现问题.例如,用户想要将动物类型控件上的verbage从Dog更改为K9.这是问题开始的地方.
对于所有新订单,下拉工作正常.当用户检索旧订单时,我在C#代码隐藏中得到以下错误"'DropDownList1'具有一个无效的SelectedValue,因为它在项目列表中不存在."
发生的事情是旧订单的数据库字段值为Dog,DropDownList在其列表中不再有Dog,因为用户将其更改为K9.
关于变通方法的任何想法?
有没有办法让asp:DropDownList接受没有在其列表中播种的项目?我可以使用另一个控件吗?