Как отобразить HTML-теги в текстовом свойстве ListItem? - PullRequest
2 голосов
/ 03 марта 2009

У меня есть элемент управления DropDownList, который заполняется через сервер.

Я использую цикл For Each [datarow] и создаю новый ListItem

В DataRow есть столбец с идентификатором «Заголовок»; это поле может содержать теги или . (напр. "[Title] in [Parent Title] ")

Проблема, с которой я сталкиваюсь, заключается в том, что когда я [DropDownList] .Controls.Add ([ListItem]) визуализирует текст буквально ... он отображает теги или буквально и не выделяется жирным шрифтом / выделите курсивом шрифт.

Я пытался найти ответ, может кто-нибудь указать мне правильное направление?

Ответы [ 4 ]

4 голосов
/ 03 марта 2009

Элемент управления DropDownList отображается как элемент select в hhtml-коде, а элементы управления ListItem отображаются как элементы option. Элемент option не поддерживает форматирование HTML в тексте. Некоторые браузеры могут поддерживать некоторые стили всего текста option, но ни один браузер не поддерживает стилизацию части текста.

Если вам нужно форматирование html в раскрывающемся списке, вы должны либо создать собственный элемент управления для раскрывающегося списка с помощью DHTML, либо найти кого-то, кто уже это сделал.

2 голосов
/ 03 марта 2009

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

ListItem li = new ListItem(dr["Name"], dr["Course"]);
if (bold) li.Attributes.Add("style", "font-weight:bold");
listcontrol.Items.Add(li);

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

0 голосов
/ 25 марта 2011

Действительно, это невозможно.

У вас есть пара альтернатив, хотя они имеют некоторые незначительные недостатки, потому что они не совсем ведут себя как выпадающий список. В большинстве решений вы можете выбрать вариант с помощью мыши, а не набирать пару символов. Конечно, это можно запрограммировать, но это требует времени и усилий.

Альтернативы, которые я нашел:

JQuery решение от Marghoob Suleman

JQuery решение из Санчес-Сальвадор

0 голосов
/ 03 марта 2009

Если вам нужно форматировать жирным шрифтом и курсивом, я бы порекомендовал использовать элемент управления .net Literal в качестве заполнителя для вашего выпадающего списка. Затем при обратной передаче или привязке данных вы можете выполнить итерацию по своему набору результатов, сгенерировать HTML-код вручную (поскольку он не так сложен) и затем вставить сгенерированный HTML-код в элемент управления Literal.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...