将列表绑定到下拉列表,如何处理值?

Ozk*_*kan 7 .net c# asp.net list drop-down-menu

我将List绑定到DropDownList.但我想为每个列表项的值提供其他值.

我有以下ddl和列表:

List<string>
Run Code Online (Sandbox Code Playgroud)

运动,排球,橄榄球

<select>
    <option selected="selected" value="0"> Alle soorten</option>
    <option value="sport">sport</option>
    <option value="volleyball">volleyball</option>
    <option value="rugby">rugby</option>
</select>
Run Code Online (Sandbox Code Playgroud)

但我想跟随(值中的ID)

<select>
    <option selected="selected" value="0"> Alle soorten</option>
    <option value="1">sport</option>
    <option value="2">volleyball</option>
    <option value="3">rugby</option>
</select>
Run Code Online (Sandbox Code Playgroud)

我如何创建一个List,以便获得上面的下拉列表.

谢谢

LMW*_*-HH 10

如果您能够更改源的类型,我建议您使用字典.你可以这样做:

var source = new Dictionary<int, string>();
source.Add(0, "Sports");
source.Add(1, "Football");
dropDown.DataSource = source;
dropDown.DataTextField = "Key";
dropDown.DataValueField = "Value";
dropDown.DataBind();
Run Code Online (Sandbox Code Playgroud)

这会导致:

<select name="DdlCat2" id="DdlCat2" class="cats">
    <option selected="selected" value="Sports">0</option>
    <option value="Football">1</option>
</select>
Run Code Online (Sandbox Code Playgroud)

稍后您可以像这样访问ID或值:

dropDown.SelectedItem.Value
dropDown.SelectedItem.Text
Run Code Online (Sandbox Code Playgroud)


A. *_*per 5

您可以做的是手动创建ListItems,如下所示:

List<string> yourValues;
for(var i=0; i < yourValues.Count; i++)
    YourDropDown.Items.Add(new ListItem(yourValues[i], i.ToString());
Run Code Online (Sandbox Code Playgroud)

或者,您可以创建一个临时变量,并将下拉列表与linq查询绑定,如下所示:

List<string yourValues;
var index = 0;
YourDropDown.DataSource = yourValues.Select(x => new { Text = x, Value = index++ });
YourDropDown.DataBind();
Run Code Online (Sandbox Code Playgroud)

并将其与标记结合起来:

<asp:DropDownList ID="YourDropDown" DataValueField="Value" DataTextField="Text" runat="server" />
Run Code Online (Sandbox Code Playgroud)