2010-02-01 9 views
0

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

Например:

foreach (Site mySite in myList) 
     { 
      ListItem li = new ListItem(mySite.FullAddress, mySite.Id.ToString()); 
      if (mySite.DisabledFlg) 
      { 
       li.Attributes.Add("style", "color:#999"); 
      } 
      this.Items.Add(li); 
     } 

Я пытаюсь заставить текст в ListItem ломаться в определенных точках. Строка, которую я извлекаю из источника данных, в настоящее время имеет «\ r \ n» везде, где должен быть разрыв строки. Это отлично подходит для отображения в обычном текстовом поле, но оно не работает в списке. Я попытался заменить «\ r \ n» на "<br>", но когда я это сделаю, он просто отображает <br> в списке вместе с остальной частью текста. Я попробовал обернуть содержимое списка в "div" с атрибутом width, но он также просто отображает тег "div" буквально в тексте ListItem. Я также попытался добавить следующее к ListItem атрибуты в безвыходном:

   li.Attributes.Add("width", "100px"); 

Но это не привело к изменениям либо.

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

+0

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

+0

В результате я использовал DropDownExtender AjaxControlToolkit, чтобы создать поддельный выпадающий список, используя текстовое поле и gridview с одним столбцом с возможностью выбора строк. Это подтвердило результат, который я искал, потому что это невозможно с помощью стандартного элемента управления dropdownlist. –

ответ

3

Я не думаю, что это возможно. Элемент управления DropDownList отображает элемент <select>, и он просто не предназначен для своих дочерних элементов <option>, чтобы иметь разрывы строк.

Другим способом достижения такого же эффекта, однако, является обработка данных перед привязкой к DropDownList. Вы можете разделить на линейные каналы и просто назначить один и тот же DataValue этим дублируемым элементам. Вы бы в конечном итоге с HTML, как следующие:

<select> 
    <option value="A">A</option> 
    <option value="A">A.2</option> 
    <option value="B">B</option> 
</select> 

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

2

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