Основы ASP.NET 2.0

       

Свойство AutoPostBack


Программирование в ASP .NET ориентировано на события. События на странице (например нажатие на кнопку) обрабатываются на сервере. Изменения в тексте поля редактирования, выбора опции в списке, нажатие на флажок или переключатель не вызывают немедленной отправки на сервер. Этого можно добиться, если установить свойство AutoPostBack для этих элементов.

Если AutoPostBack установлен для элемента управления TextBox, то для него будет вызываться событие TextChanged, как только поле потеряет фокус или будет нажата клавиша Enter. Чтобы это свойство работало, браузер должен поддерживать ECMAScript (стандарт JavaScript, принятый Европейской ассоциацией производителей компьютеров).

Источником данных для элементов управления могут служить таблицы данных. Давайте разберем пример, входящий в состав Visual Studio — CarSelectorSample. Действие происходит в электронном магазине автомобилей. Имеются разные марки машин, причем для каждой марки имеются несколько моделей. При выборе марки машины в первом списке во второй список автоматически грузятся соответствующие модели:

BrandBuickChevroletPontiacToyotaMileageFeatures
Power seat
BuickCenturyImpalaGrand AmAvalon0-10000Leather seat
ChevroletLeSabreMalibuGrand PrixCamry10000-20000Sun roof
PontiacPark AvenueMetroMontanaCamry Solara20000-30000CD player
ToyotaRegalPrizmSunfireCelica30000 and moreABS

Все данные, используемые на этой странице, собраны в таблицу. Для хранения такой таблицы существует класс DataTable. Таблица состоит из столбцов — DataColumn и строк DataRow.


Класс DataView позволяет создавать различные представления данных таблицы. Первый столбец служит источником данных списка марок. В зависимости от выбранной модели, в список моделей загружается одна из 2-5 колонок.

Вначале создается таблица:

Cars = new DataTable(); Cars.Columns.Add(new DataColumn("Brand", typeof(string)));

Здесь вызывается один из конструкторов DataColumn. Первый аргумент — название колонки, второй — тип:

CarRow = Cars.NewRow();

Создается новая строка таблицы. Ячейка таблицы задается с помощью индекса строки:

CarRow[6]= "Power seat";

И строка добавляется в таблицу:

Cars.Rows.Add(CarRow);

У выпадающего списка марок установлено свойство AutoPostBack. Это значит, что страница автоматически подается на сервер, когда в этом списке меняется выбранный элемент.

В обработчике выбора нового элемента вначале выясняется, какой элемент выбран:

string selected = DropDownList1.SelectedItem.Value;

В операторе switch происходит переключение второго списка на один из столбцов таблицы заданием свойств DataTextField и DataValueField, где DataTextField — текст, отображаемый в списке, а DataValueField — выбранное значение. В данном случае, как часто бывает, они одинаковы.


Содержание раздела