使用FindByValue的html5下拉列表

时间:2013-11-17 18:52:10

标签: c# asp.net html5

我的下拉列表HTML5

<select runat="server" id="ddlStateLegalRes" name="ddlStateLegalRes"></select>

在我的页面加载中,我将下拉列表绑定到具有状态列表

的列表集合
protected void Page_Load(object sender, EventArgs e)
    {

     if (!Page.IsPostBack)
                {
                    List<StateList> states = ops.getStates();
                    ddlStateLegalRes.DataTextField = "StateRegionName";
                    ddlStateLegalRes.DataValueField = "StateRegionCode";
                    ddlStateLegalRes.DataSource = states;
                    ddlStateLegalRes.DataBind();

    GetAllInfo();

EDITED * * 的  有一些奇怪的事情在我调试时似乎无法确定它。由于一些奇怪的原因,这是应该工作,但后来开始抛出这个错误“对象引用未设置为对象的实例”

我知道列表集合正在获取正确的值,我也知道我的存储过程返回了“STATEOFLEGALRESIDENCE”,其值为“FL”并且拼写正确。

"""Inside my GetAllInfo() method
    while (sdr.Read())
    {
          ddlStateLegalRes.Items.FindByValue(sdr["STATEOFLEGALRESIDENCE"].ToString()).Selected = true;
    }

我怀疑是在尝试使用值绑定我的下拉列表之前,尝试使用值设置我的下拉列表。所以我试图将GetAllInfo()方法移动到Page_LoadComplete事件中并仍然出现同样的错误,所以现在我迷路了请帮助

由于

1 个答案:

答案 0 :(得分:0)

听起来读者返回的值与列表项中的值不完全匹配或丢失。

我会在这一点上提出一个突破点。检查这些值是否匹配:

尝试此操作但将0替换为项目的值。

 ddlStateLegalRes.Items[0] == sdr["STATEOFLEGALRESIDENCE"].ToString());

这听起来像是一个案例或白色空间问题。