Установка пользовательского атрибута для элемента списка в элементе управления HTML Select (.NET / C #)

#c# #asp.net #.net

#c# #asp.net #.net

Вопрос:

Я пытаюсь создать пользовательский атрибут для каждого элемента списка в элементе управления выбором HTML с привязкой к базе данных.

Результирующий вывод HTML должен выглядеть примерно так:

 <select>
<option value="1" data-value="myValue1">item</option>
<option value="2" data-value="myValue2">item</option>
<option value="3" data-value="myValue3">item</option>
</select>
  

Я пробовал добавлять подобные атрибуты, но они не отображаются:

 <select id="selectList" class="multiselect" multiple="true" name="selectList[]" runat="server"></select>
  

 ListItemCollection values = new ListItemCollection();

ListItem test = new ListItem("add");
test.Attributes.Add("data-value", "myValue");

values.Add(test);

this.selectList.DataSource = values;
this.selectList.DataBind();
  

Есть мысли о том, как этого можно достичь? Спасибо!

Ответ №1:

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

 ListItem test = new ListItem("text1", "value1");
test.Attributes.Add("data-value", "myValue1");
applicationList.Items.Add(test);
  

Если вы должны использовать привязку к данным, вам необходимо обработать событие привязки к данным, а затем выполнить итерацию по элементам списка элемента управления и добавить / установить требуемый атрибут. Честно говоря, я обнаружил, что это обходной путь.

Комментарии:

1. Потрясающе, спасибо Vinay. Мне не пришло в голову отказаться от привязки к данным и вместо этого добавлять элементы напрямую. 🙂