#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. Мне не пришло в голову отказаться от привязки к данным и вместо этого добавлять элементы напрямую. 🙂