Я работаю с пользовательским управлением DropDownList в ASP.NET и был запрос для отображения определенных объектов в списке с полужирным шрифтом (ПРИМЕЧАНИЕ - управление наследовалось CompositeDataBoundControl, таким образом, это могут быть данные, связанные... не DropDownListBox). Управление связывается с таблицей и существует столбец в таблице под названием IsUsed - если это имеет значение true, соответствующий объект в списке должен быть представлен полужирный. (Нужно отметить здесь, что это будет только когда-либо просматриваться в FireFox.)
Мой опыт - все в середине \уровни бэкенда, таким образом, уровень представления очень плохо мне знаком - кто-то может указать на меня в правильном направлении? Моя начальная буква думала, был то, что где-нибудь в пользовательском элементе управления у меня будет доступ ко всем строкам, которые возвращаются из источника данных, который я мог циклически повторить через и т.д., но я не уверен, возможно ли это... Существует также RenderContents, который я могу переопределить... интересные взгляды!
OK Я думаю, что ответил на свой собственный вопрос, но он не кажется очень элегантным.
Я могу написать новую хранимую процедуру для возврата данных, которые мне нужно отобразить в списке, которая вернет ID и DESCRIPTION. Однако описание будет описанием плюс TRUE или FALSE (в зависимости от флага IsUsed в таблице). Затем в RenderContents я могу разделить строку описания, разобрать bool и добавить атрибут стиля, делающий текст жирным, если bool истинен...
Вот как сделать то, что вам нужно, в коде программной части:
var item = new ListItem("MyItem");
item.Attributes.Add("style", "font-weight: bold");
var list = FindControl("DropDownList1");
list.Items.Add(item);
Любой элемент управления, унаследованный от System.Web.UI.Control
, имеет свойство Attributes
, который можно использовать для добавления или добавления атрибута стиля стиля
.
Какой бы элемент управления вы не использовали на стороне сервера, в браузере клиента он будет отображаться как html, а стандартный html выпадающий список не поддерживает стилизацию его содержимого. Вместо этого вы можете использовать JavaScript или jQuery для создания пользовательских элементов управления выпадающим списком.