Nic*_*ckG 6 asp.net generic-list drop-down-menu
我正在尝试使用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;
}
Run Code Online (Sandbox Code Playgroud)
但是,呈现的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>
Run Code Online (Sandbox Code Playgroud)
为什么它不使用指定的"值"而只是在呈现HTML时重复"名称"?我究竟做错了什么?
Cla*_*edi 11
尝试使用此代码.您手动将项目添加与数据绑定混合.
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"));
}
Run Code Online (Sandbox Code Playgroud)
我会说,如果你想保持你的代码,你应该添加这2行
PositionDropDown.DataSource = GetPositionOptions();
PositionDropDown.DataTextField = "Text";
PositionDropDown.DataValueField = "Value";
PositionDropDown.DataBind();
Run Code Online (Sandbox Code Playgroud)
但这没有任何意义,你不应该绑定ListItems.
| 归档时间: |
|
| 查看次数: |
16087 次 |
| 最近记录: |