我正在尝试使用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")); }
PositionDropDown.DataSource = GetPositionoptions(); PositionDropDown.DataTextField = "Text"; PositionDropDown.DataValueField = "Value"; PositionDropDown.DataBind();
但这没有任何意义,你不应该绑定ListItems.
原文地址:https://www.jb51.cc/aspnet/245729.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。