Добавление HTML в DataTextFormatString - PullRequest
1 голос
/ 13 февраля 2009

У меня есть DropDownList, заполненный запросом LINQ. В соответствии с требованиями к дизайну этого проекта, мне нужно добавить 4 "" в ListItem.Text DDL.

Это работает, когда я вручную добавляю ListItems так:

<asp:ListItem Value="NULL">&nsbp;&nsbp;&nsbp;&nsbp;Select One</asp:ListItem>

но не тогда, когда я DataBind () и использовать:

DataTextFormatString = "&nsbp;&nsbp;&nsbp;&nsbp;{0}";

Любая помощь приветствуется.

И: Прежде чем кто-то что-то скажет о коде HTML, я должен был назвать его "& nsbp;" так как это не позволило бы мне использовать код неразрывного пробела.

Спасибо!

Ответы [ 3 ]

1 голос
/ 13 февраля 2009
DropDownList ddl = new DropDownList();
ddl.Items.Add(new ListItem(Server.HtmlDecode("& n b s p;&n b s p ;& n b s p ;&n bs p;abc"), "abc"));

Надеюсь, это поможет!

Примечание: убрать пробелы между символами ..

0 голосов
/ 13 февраля 2009

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

Проблема в том, что любые текстовые значения, которые вы привязываете к элементу управления, будут автоматически кодироваться в формате html. Это означает, что '& nbsp;' всегда будет преобразован в '& amp; nbsp;'. Это происходит независимо от того, добавляете ли вы & nbsp; к текстовым значениям в вашем источнике данных перед привязкой его к элементу управления или через свойство DataTextFormatString.

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

Я думаю, Джеймс ' предложение какого-то пользовательского элемента управления, вероятно, ваш лучший способ получить функциональность, которую вы ищете.

0 голосов
/ 13 февраля 2009

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

Если подклассификация - это слишком много работы, используйте некоторый код Javascript на стороне клиента для обновления этих элементов при загрузке страницы. Это было бы несложно с JQuery. Я надеюсь, что это помогает.

...