首页 > 解决方案 > 下拉选择的值为空

问题描述

我正在使用网络表单。我有一个国家的表格DropDownList

<asp:DropDownList runat="server" ID="Country" 
     DataValueField="CountryID" DataTextField="CountryDisplayName"/>

我在后面的代码中填写:

var countries = CountryService.GetCountries();
countries.Insert(0, new CountryInfo { CountryName = "", CountryDisplayName = "", CountryID = 0 });

Country.DataSource = countries;
Country.DataBind();

一切都很好,但现在我正试图将此控件移动到单独的控件。

我已经移动了它,它充满了国家。

问题是我正在使用回发来填写表格,并且当单独控件SelectedValue中的下拉菜单始终为空时。

问题的原因可能是什么?

标签: c#asp.netwebforms

解决方案


听起来回发正在删除信息,或者您的数据绑定正在替换它。

  1. 您是否尝试过将 country.databind() 包装在 !IsPostback 中?
  2. 您是否尝试过在标记中添加 SQLDatasource,将其链接到下拉列表,添加 AutoPostback 并查看它是否有效?

见下文:

<asp:DropDownList runat="server" AutoPostBack="True" ID="Country" 
 DataValueField="CountryID" DataTextField="CountryDisplayName" DataSourceID="SqlDataSource1"/>

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:XXXXXConnectionString %>" ProviderName="<%$ ConnectionStrings:XXXXXConnectionString.ProviderName %>" SelectCommand="XXXX">

推荐阅读