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

本文关键字:SelectedValue SelectedText NET 返回 ASP | 更新日期: 2023-09-27 18:01:59

我错过了什么?我正在构建下拉菜单,像这样,从代码后面:

 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。值,它应该返回StatusId但它返回的是StatusName。我错过了什么?

EventStatusDropDownList1.SelectedItem.Value

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

这里的edata代表什么?如果是DataTable或通用List,则可以使用DataSourceDataBind成员。请看下面的代码:

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

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