ASP.NET DropDown返回SelectedText的值而不是SelectedValue

时间:2013-03-01 19:38:24

标签: c# asp.net

我错过了什么? 我正在从代码隐藏中构建下拉列表:

 ListItemCollection oL = new ListItemCollection();
        foreach (var item in edata)
        {
            ListItem oListItem = new ListItem();
            oListItem.Text = item.StatusName; //"StatusName"
            oListItem.Value  = item.Id.ToString(); // "StatusId"

            if(item.Id == statusid)
            {
                oListItem.Selected = true;
            }
            oL.Add(oListItem);

        }

但是当我尝试选择这样的SelectedItem.Value时,它应该返回StatusId,但它返回StatusName。我错过了什么?

EventStatusDropDownList1.SelectedItem.Value

1 个答案:

答案 0 :(得分:0)

edata代表什么?如果是DataTable或通用List,您可以使用DataSourceDataBind成员。请参阅以下代码:

var edata = SomeMethodReturnngDataTable();
EventStatusDropDownList1.DataSource = edata;
EventStatusDropDownList1.DataTextField = "StatusName";
EventStatusDropDownList1.DataValueField = "StatusId";
EventStatusDropDownList1.DataBind();

现在您可以使用EventStatusDropDownList1.SelectedItem.Value来获取ID。