Rambler's Top100
Главная
Новости
Статьи
Форумы
Книги
Коды
Сообщество
Блоги
О нас
 

Логин

Email:
  Пароль:

Войти
Зарегистрироваться
Забыл пароль

Поиск

 Искать :
 
Вперед


Приемы работы с элементом управления DropDownList

Приемы работы с элементом управления DropDownList

Автор: Dimon aka Manowar (aspnetman@aspnetmania.com)
Опубликовано: 17 March 2002
Уровень: Совет

Версия для печати

Проголосовало 40 читателей
Средняя оценка 3.80

Вопрос: Как получить значение текущего выбранного элемента?

Ответ: Проще всего для получения текущего выбранного элемента воспользоваться свойством SelectedItem элемента DropDownList.

string currentValue = DropDownList1.SelectedItem.Value;

Более извращенным способом является использование свойства SelectedIndex элемента DropDownList:

string currentValue = DropDownList1.Items[DropDownList1.SelectedIndex].Value;

Выглядит конструкция посложнее предыдущей, а? :)

Ну и совершенно извращенный путь – перебрать все элементы DropDownList и найти тот, у которого свойство Selected установлено в true;

string currentValue;
foreach(ListItem item in DropDownList1.Items)
 if(item.Selected){
  currentValue = item.Value;
  break;
 }

Вопрос: Как добавлять/удалять элементы в DropDownList в коде?

Ответ: Свойство Items элемента DropDownList имеет несколько методов для добавления/удаления строк в DropDownList. Например используя методы Add и Insert можно добавить элемент в DropDownList или вставить его в указанную позицию в DropDownList, AddRange позволяет добавить массив элементов в DropDownList, метод Clear удаляет все элементы из DropDownList, методы Remove и RemoveAt удаляют указанный элемент или элемент, находящийся в указанной позиции соответственно. Вот несколько примеров вызовов перечисленных методов:

DropDownList1.Items.Clear();
DropDownList1.Items.Add("Первый элемент");
DropDownList1.Items.Add(new ListItem("Второй элемент", "значение"));
DropDownList1.Items.AddRange(new ListItem[] {new ListItem("Первый в массиве элементов"), new ListItem("Второй в массиве элементов", "2")});});
DropDownList1.Items.RemoveAt(0);
DropDownList1.Items.Remove("Второй элемент");

Вопрос: Я связываю элемент DropDownList с данными из источника данных (вывожу справочник). Как мне добавить в список выводимых данных пустое значение?

Ответ: После вызова метода DataBind элемента DropDownList можно воспользоваться методом Insert свойства Items элемента. Данный метод принимает 2 параметра – позицию, в которую необходимо вставить новый Item и вставляемый объект ListItem:

DropDownList1.DataSource = myData;
DropDownList1.DataTextField = "Name";
DropDownList1.DataVialueField = "id";
DropDownList1.DataBind();
//Пришла пора вставить новый ListItem
DropDownList1.Items.Add(0, new ListItem("Выберите...", ""));

Вопрос: Я использую элемент DropDownList как справочник в форме ввода. Как изначально выбрать элемент, отличный от первого (по имени или по значению).

Ответ: Свойство Items элемента управления DropDownList имеет метод FindByText (FindByValue) для поиска элемента с указанным значением Text или Value. Вызов этого метода возвращает ссылку на найденный элемент ListItem (или null если в DropDownList не найдено элемента, удовлетворяющего указанному условию). Для установки же того, что данный элемент – выбранный, необходимо присвоить свойству Selected возвращенного элемента ListItem значение true. Соответственно выглядит решение примерно так:

if(DropDownList1.Items.FindByText("Produce") != null)
 DropDownList1.Items.FindByText("Produce").Selected = true;

Вопрос: Как быстро очистить выбор в элементе DropDownList?

Ответ: Установив SelectedIndex в -1.

Вопрос: Можно ли установить валидатор для элемента управления DropDownList.

Ответ: Действительно, на первый взгляд элемент RequiredFieldValidator возможно применять для проверки выбора значения в DropDownList только если в элементе DropDownList значение по умолчанию равно пустой строке. На самом деле все обстоит несколько иначе. Элемент RequiredFieldValidator имеет свойство InitialValue, которое можно установить в начальное (неверное) значение проверяемого элемента. И если установить данное свойство в значение по умолчанию для элемента DropDownList, то валидатор возвратит истину только в том случае, если выбранное в DropDownList значение не равно значению свойства InitialValue.
Также для проверки того, что пользователь выбрал значение в элементе DropDownList можно использовать элемент CompareFieldValidator. При этом необходимо установить как минимум 3 свойства данного элемента – ControlToValidate (ну это вроде как и так понятно), Operator (в NotEqual – нам необходимо проверить, что выбранное значение не равно значению по умолчанию) и ValueToCompare (здесь необходимо указать значение по умолчанию DropDownList).

Ну и напоследок небольшой пример использования элемента DropDownList. Страница в примере имеет 2 элемента DropDownList. Значения одного из этих DropDownList заданы в тексте страницы (список штатов), второй же DropDownList заполняется списком городов для выбранного штата. Источником данных служит демонстрационная база pubs из стандартной поставки MS SQL 2000. Также в обоих DropDownList первым элементом вставлены значения "Please select…" (для второго элемента данное значение вставляется программно). Показан также пример работы с валидаторами. 3 кнопки позволяют добавить/удалить штат в список штатов, выбрать определенный город (если он есть в списке городов) и вывести текущие выбранные значения.


Текст примеров данной статьи можно выкачать здесь


Вернуться к статьям в категории Стандартные элементы управления
Вернуться к списку категорий
Перейти к форуму Стандартные элементы управления
 
Apartments for Rent

Rambler's Top100
Рейтинг@Mail.ru
Идея: Dimon aka Manowar Программирование: Dimon aka Manowar Дизайн: Dan Lebedev
Хостинг от компании Parking.ru
Карта сайта