Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






DropDownList






Аналог этого элемента в HTML — выпадающие меню. Они задаются с помощью тегов < SELECT> и < /SELECT>, между которыми находятся один или несколько тегов < OPTION>.:

< BR> Каталог< SELECT NAME=" Выбор" > < OPTION> Компьютеры< OPTION> Принтеры< OPTION VALUE=" Комплектующие" > Комплектующие< OPTION SELECTED> Мониторы< OPTION> Компакт-диски< /SELECT>

DropDownList выдаст тот же самый код, если будет определен так:

< asp: DropDownList id=" Выбор" runat=" server" > < asp: ListItem> Компьютеры < /asp: ListItem > < asp: ListItem > Принтеры< /asp: ListItem > < asp: ListItem > Комплектующие < /asp: ListItem > < asp: ListItem Selected=" true" > Мониторы < /asp: ListItem > < asp: ListItem > Компакт-диски< /asp: ListItem > < /asp: DropDownList >

Итак, если мы хотим перейти с написания страниц HTML к написанию кода ASP:

< asp: DropDownList> пишется вместо < SELECT> < asp: ListItem > вместо < OPTION>

Вместо атрибута NAME пишем атрибут id.

Вместо атрибута SELECTED пишем атрибут Selected и присваиваем ему true.

Атрибут VALUE можно задать и в HTML. Если его нет, ASP.NET генерирует его из текста ListItem:

< select name=" Выбор" id=" Выбор" > < option value=" Компьютеры " > Компьютеры < /option> < option value=" Принтеры" > Принтеры< /option> < option value=" Комплектующие " > Комплектующие < /option> < option selected=" true" value=" Мониторы " > Мониторы < /option> < option value=" Компакт-диски" > Компакт-диски< /option> < /select>

Отличие серверных элементов управления в том, что их можно программировать на сервере и получать информацию от них тоже на сервере.

Попробуем написать такую страницу:

< %@ Page Language=" C#" %> < script runat=" server" language=" C#" > void Page_Load() { if (Page.IsPostBack) lblMessage.Text = " Вы выбрали " + Category.SelectedItem.Value; }< /script> < html xmlns=" " https://www.w3.org/1999/xhtml" " > < head> < title> Выбор категории товаров< /title> < /head> < body> < br /> < form id=" Form1" runat=" server" > Выберите категорию товаров< br /> < asp: DropDownList ID=" Category" runat=" server" > < asp: ListItem> Компьютеры < /asp: ListItem> < asp: ListItem> Принтеры< /asp: ListItem> < asp: ListItem> Комплектующие < /asp: ListItem> < asp: ListItem Selected=" true" > Мониторы < /asp: ListItem> < asp: ListItem> Компакт-диски< /asp: ListItem> < /asp: DropDownList> < input type=" Submit" > < br /> < asp: Label ID=" lblMessage" runat=" server" /> < /form> < /body> < /html>

Запустите ее на выполнение, выберите " Компакт-диски" и нажмите на кнопку. На форме появится надпись " Вы выбрали Компакт-диски".

Вот код этой страницы в браузере:

< html xmlns=" https://www.w3.org/1999/xhtml" > < head> < title> Выбор категории товаров< /title> < /head> < body> < br/> < form name=" ctl00" method=" post" action=" DropDownList.aspx" id=" ctl00" > < div> < input type=" hidden" name=" __VIEWSTATE" id=" __VIEWSTATE" value=" /wEPDwUKLTc3Mjg2Njg5MQ9kFgICAQ9kFgICAw8PFgIeBFRleHQFLtCS0Ysg0LLRi9Cx0YDQsNC70LggINCa0L7QvNC/0LDQutGCLdC00LjRgdC60LhkZGRURXB3F72jDHrywdZ12h2Cw2f41A==" /> < /div> Выберите категорию товаров< br /> < select name=" Category" id=" Category" > < option value=" Компьютеры " > Компьютеры < /option> < option value=" Принтеры" > Принтеры< /option> < option value=" Комплектующие " > Комплектующие < /option> < option value=" Мониторы " > Мониторы < /option> < option selected=" true" value=" Компакт-диски" > Компакт-диски< /option> < /select> < input type=" Submit" > < br /> < span id=" lblMessage" > Вы выбрали Компакт-диски< /span> < div> < input type=" hidden" name=" __EVENTVALIDATION" id=" __EVENTVALIDA-TION" value=" /wEWBgKTtKPTDgLc5pLAAgLxxYKuBALL14rfCALaoI/9AgLP6q/dC9yI/KG10xK67UImbEUJkicDdslR" /> < /div> < /form> < /body> < /html>

Итак, браузеру посылается простая страница, на которой нет скриптов. То же поведение можно было бы запрограммировать с помощью JavaScript. Разница в том, что пользователь смог бы увидеть код на JavaScript, скопировать и использовать его на своих страницах. В этом нет ничего плохого, но иногда люди хотят сохранить свой код в тайне в целях защиты интеллектуальной собственности.

Посмотрим, как ASP.NET интерпретировал заголовок формы:

< form name=" ctl00" method=" post" action=" DropDownList.aspx" id=" ctl00" >

Атрибуты name и id он сгенерировал самостоятельно. Их значение одинаково, разные браузеры позволяют обращаться к элементам формы по-разному: IE — через id, а Netscape Navigator — через name. Атрибуты method и action тоже не были указаны нами, он сгенерировал их по умолчанию как post и текущая страница.

А что значит скрытый элемент разметки, который мы видим на каждой сгенерированной ASP.NET странице? Это поле, сохраняющее состояние формы. Раньше форма была отдельной страницей, и когда она отправляла серверу данные, он генерировал совершенно другую страницу. В ASP.NET форма подает себя сама, она работает на входе и на выходе.

Поэтому через специальное скрытое поле передаются значения данных формы. Если бы этого не было, в выпадающем списке всегда были бы выбраны мониторы. Информация в этом поле хранится в закодированном виде, но сервер может ее раскодировать.

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

Category = new DropDownList(); Category.Items.Add(" Компьютеры"); Category.Items.Add(" Принтеры"); Category.Items.Add(" Комплектующие"); ListItem selItem = new ListItem(" Мониторы", " мониторы"); Category.Items.Add(selItem); Category.Items.Add(new ListItem(" Компакт-диски")); Category.SelectedIndex = 3;

Чтобы очистить выбор в элементе DropDownList, установите SelectedIndex в (-1).

Если установить у ListItem свойство Enable в false, то он будет не виден в списке, однако с ним можно работать из программы. Событие SelectedIndexChanged запускается, когда пользователь выбирает другой элемент.


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.008 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал