Как заставить разрыв строки в элементах списка раскрывающегося списка? - PullRequest
0 голосов
/ 01 февраля 2010

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

Например:

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);
        }

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

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

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

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

Ответы [ 2 ]

3 голосов
/ 01 февраля 2010

Я не думаю, что это возможно. Элемент управления 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 голосов
/ 01 февраля 2010

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

...