2011-12-22 1 views
5

Я привязываю список к DropDownList. Но я хочу указать другие значения для значения для каждого элемента списка.привяжите список к выпадающему списку, что делать со значением?

Я следующий DDL и список:

List<string> 

спорта, волейбол, регби

<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> 

Но я хочу следующее (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> 

Как я нужно создать список, чтобы я мог получить вышеотложенный список.

Благодаря

+0

Как вы Наполнение список, может быть, у вас тоже есть идентификаторы, поэтому пара KeyValue должна быть тем, что вы должны смотреть на – V4Vendetta

+0

@ V4Vendetta aha, словарь, который вы имеете в виду? для каждого элемента также значение. KeyValuepair - это только один элемент, не так ли? – Ozkan

ответ

9

Если вы в состоянии изменить тип источника, я бы рекомендовал использовать словарь. Вы можете сделать это следующим образом:

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(); 

Это привело бы к этому:

<select name="DdlCat2" id="DdlCat2" class="cats"> 
    <option selected="selected" value="Sports">0</option> 
    <option value="Football">1</option> 
</select> 

Позже вы можете получить доступ к ID или значения, как это:

dropDown.SelectedItem.Value 
dropDown.SelectedItem.Text 
4

Что вы могли бы сделать, это создать ListItems вручную, как это:

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

Или вы могли бы создать временную переменную и связать свой выпадающий список с Linq запроса, как это:

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

и объединить, что с разметкой:

<asp:DropDownList ID="YourDropDown" DataValueField="Value" DataTextField="Text" runat="server" /> 
+0

простой и чистый. –

Смежные вопросы