русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Події сторінки


Дата додавання: 2014-11-27; переглядів: 946.


Робота середовища ASP.NET зі сторінкою починається з отримання та обробки Web-сервером IIS запиту до даної сторінки і передачі цього запиту середовищу виконання ASP.NET. Середовище виконання аналізує, чи потрібно компілювати сторінку, чи можна видати як відповідь сторінку з кеша.

Потім починається життєвий циклсторінки. Він стартує з етапу PreInit. Після отримання запиту середовище виконання завантажує клас сторінки, встановлює властивості класу сторінки, вибудовує дерево елементів, заповнює властивості Request, Response та UICulture і викликає метод IHttpHandler.ProcessRequest. Після цього середовище виконання перевіряє, яким чином була викликана ця сторінка. Якщо сторінка викликана шляхом передачі даних з іншої сторінки, то середовище виконання встановлює властивість PreviousPage.

На цьому етапі встановлюється також властивість IsPostback об’єкта Page, яка дає змогу взнати, перший раз завантажується форма, чи вона повинна формуватися як результат обробки даних, введених користувачем.

В обробниках подій сторінки можна перевірити цю властивість:

if (!Page.IsPostBack) { ... }

Далі відбувається ініціалізація сторінки - подія Init. Під час ініціалізації сторінки утворюються дочірні користувацькі елементи управління. Якщо сторінка викликана у результаті постбека, то на цьому етапі дані, відправлені на сервер, ще не завантажені у властивості елементів управління. Програміст може ініціалізувати ці властивості.

Процес завантаження супроводжує подія Load. Тут встановлюються властивості елементів управління на основі інформації про стан, якщо сторінка утворюється в результаті відправки даних форми.

Якщо на сторінці існують валідатори (класи перевірки даних), то для них викликається метод Validate(). Потім викликаються обробники подій (при умові, що сторінка генерується у відповідь на дії користувача).

В методі Render генерується власне HTML-код сторінки. При цьому сторінка викликає відповідні методи дочірніх елементів. В методі Render код виводиться в Response.OutputStream. Сама сторінка також вважається елементом управління, оскільки клас Page є нащадком класу Control. Якщо на сторінці є блоки відображення, вони стають частиною функції рендерингу (відрисовування) rendering.

Нарешті, сторінка вивантажується з пам’яті сервера і відбувається подія Unload.

Під час життєвого циклу сторінки відбуваються різноманітні події. Можна включити трасування сторінки, щоб переглянути порядок їх виникнення:

<%@ Page Language="C#" Trace="true" TraceMode="SortByTime" %>

Під час трасування не виводиться подія Unload, оскільки вона відбувається тоді, коли весь код вже виведений. Під час обрабки цієї події потрібно звільнити ресурси, наприклад, з’єднання з базами даних або відкриті файли.

Ось повний список подій сторінки, які можна перевизначити у класі сторінки:

· PreInit

· Init

· InitComplete

· PreLoad

· Load

· LoadComplete

· PreRender

· PreRenderComplete

· Unload

Для всіх подій визначені обробники - віртуальні функції OnInit, OnLoad. Коли AutoEventWireup дорівнює true, в класі автоматично оголошуються функції-обробники подій з префіксом Page: Page_Load, Page_Init і т.д. Одна з найбільш популярних подій – це Page_Load. Утворюючи нову сторінку, Visual Studio утворює обробник цієї події. Тут можна змінити зовнішній вигляд елементів і утворити нові. Можна встановити AutoEventWireup в false. У цьому випадку потрібно писати перевантажені версії віртуальних функцій:

protected override void OnInit(EventArgs e) { }


<== попередня лекція | наступна лекція ==>
Властивості сторінки | Способи впровадження коду ASP.NET у сторінку


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн