【发布时间】:2015-04-15 19:16:55
【问题描述】:
我的问题很简单,我找到了很多例子,但它们并不简明扼要。
下面是我的 aspx 文件中的标记
<asp:DropDownList ID="ddlCountry" DataTextField="CountryName" DataValueField="CountryCode" runat="server">
</asp:DropDownList>
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
下面是我的代码
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
LoadCountry();
this.ddlCountry.SelectedValue = "USA";
}
}
private void LoadCountry()
{
DataTable dtResult = null;
dtResult = new DataTable("Countiers");
dtResult.Columns.Add("CountryCode");
dtResult.Columns.Add("CountryName");
DataRow dtRow1 = dtResult.NewRow();
dtRow1["CountryCode"] = "PAKISTAN";
dtRow1["CountryName"] = "PAKISTAN";
dtResult.Rows.Add(dtRow1);
DataRow dtRow2 = dtResult.NewRow();
dtRow2["CountryCode"] = "INDIA";
dtRow2["CountryName"] = "INDIA";
dtResult.Rows.Add(dtRow2);
DataView dv = new DataView(dtResult);
dv.Sort = "CountryName";
this.ddlCountry.DataSource = dv;
this.ddlCountry.DataBind();
this.ddlCountry.Items.Insert(0, new ListItem("--Please Select--", "-1"));
}
protected void Button1_Click(object sender, EventArgs e)
{
this.ddlCountry.SelectedValue = "USA";
}
}
我只是在调用 LoadCountry 方法后的初始页面加载事件期间加载这个带有国家/地区的下拉列表,我将 selectedValue 设置为“USA”,这没有给出异常或错误。但是通过单击 Button1 回发后,我再次将 selectedValue 设置为“USA”,但这次发生了异常(有一个无效的 SelectedValue,因为它不存在于项目列表中)。我知道“USA”的值不在列表中,这就是它抛出异常的原因,但为什么它最初没有抛出该异常?
【问题讨论】: