加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

如何以编程方式将ListItems添加到ASP.NET中的DropDownList?

发布时间:2020-12-15 20:36:15 所属栏目:asp.Net 来源:网络整理
导读:我正在尝试使用ListItems列表将项目添加到下拉列表,但它没有获取值(仅文本). 代码如下(从我实际使用的代码中简化): PositionDropDown.DataSource = GetPositionOptions(); PositionDropDown.DataBind(); private ListListItem GetPositionOptions() { ListL
我正在尝试使用ListItems列表将项目添加到下拉列表,但它没有获取值(仅文本).

代码如下(从我实际使用的代码中简化):

PositionDropDown.DataSource = GetPositionOptions();
    PositionDropDown.DataBind();


    private List<ListItem> GetPositionOptions() 
    {
        List<ListItem> items = new List<ListItem>();
        items.Add(new ListItem("",""));
        items.Add(new ListItem("Top (main)","TOP"));
        items.Add(new ListItem("Bottom (full width)","BTM"));
        items.Add(new ListItem("Bottom Left","MIL"));
        items.Add(new ListItem("Bottom Middle","MID"));
        return items;
    }

但是,呈现的HTML缺少ListItem构造函数的第2个参数中指定的值:

<option value=""></option>
<option value="Top (main)">Top (main)</option>
<option value="Bottom (full width)">Bottom (full width)</option>
<option value="Bottom Left">Bottom Left</option>
<option value="Bottom Middle">Bottom Middle</option>

为什么它不使用指定的“值”而只是在呈现HTML时重复“名称”?我究竟做错了什么?

解决方法

尝试使用此代码.您手动将项目添加与数据绑定混合.
private void SetPositionOptions() 
{
    PositionDropDown.Items.Add(new ListItem("",""));
    PositionDropDown.Items.Add(new ListItem("Top (main)","TOP"));
    PositionDropDown.Items.Add(new ListItem("Bottom (full width)","BTM"));
    PositionDropDown.Items.Add(new ListItem("Bottom Left","MIL"));
    PositionDropDown.Items.Add(new ListItem("Bottom Middle","MID"));
}

我会说,如果你想保持你的代码,你应该添加这2行

PositionDropDown.DataSource = GetPositionOptions();
PositionDropDown.DataTextField = "Text";
PositionDropDown.DataValueField = "Value";
PositionDropDown.DataBind();

但这没有任何意义,你不应该绑定ListItems.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读