Збереження даних Web-форми

Оскільки Web-форми живуть дуже недовго, ASP.NET вживає спеціальні заходи для збереження даних, уведених в елементи керування Web-форми. З кожним запитом на сервер відправляються всі дані, які було введено в елементи керування, де вони записуються в елементи керування під час обробки події Page_Init. Тепер ці дані будуть доступні оброблювачеві події Page_Load.

Дані, які ASP.NET зберігає між передачею запитів, називаються станом відображення (view state) Web-форми. Стан відображення Web-форми доступно тільки усередині цієї Web-форми. Щоб зробити уведені в Web-форму дані доступними іншим Web-формам додатка, необхідно зберегти їх у змінних станів (в об'єктах Application або Session ). Ці об'єкти відрізняються областю дії:

· змінні станів на основі об'єкта Application доступні всім користувачам додатка, тому їх можна розглядати як глобальні змінні, які доступні декільком користувачам. Ці змінні дозволяється читати і записувати з будь-яких сеансів;

· змінні станів на основі об'єкта Session доступні в межах одного сеансу (тільки одному користувачеві). Змінні Session нагадують глобальні змінні стандартних Windows-додатків. Ці змінні станів доступні тільки в поточному сеансі.

Змінні Application і Session оголошуються інакше, ніж звичайні. Змінні станів створюються кодом «на льоту». Наступний код підраховує, скільки разів клацнули кнопку, і записує результат у змінну стану Session.

// Код з файлу Global.asax.es

protected void Session_Start(Object sender, EventArgs e)

{

// Ініціалізувати змінну стану Clicks Session

Session["Clicks"] = 0;

}

// Цей код узятий з файлу StateNEvents.asax.cs

private void Button1_Click(object sender, System. EventArgs e)

{

// Збільшити число натискань

Session["Clicks"] = (int)Session["Clicks"] + 1;

// Показати число натискань

Response.Write("Number of clicks: " + Session["Clicks"] + "<br>");

}

У змінних станів можна зберігати дані будь-якого типу, від звичайних цілочислених значень до об'єктів. Оскільки змінні станів відносяться до глобальних, необхідно виробити стратегію їх використання в додатку.

Увага! Як правило, у програмах на Visual C# змінні станів Application треба ініціалізувати перед використанням. Наприклад, перед перетворенням типів (int)Session[«Clicks»] змінну стану Clicks необхідно ініціалізувати, у противному випадку під час виконання ви одержите повідомлення про помилку: «Value null was found where an instance of an object was required».


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: