Прив’язка даних
Майже кожен веб-додаток має справу з даними, незалежно від того, зберігаються вони в базі даних, XML-файлі, структурованому файлі або деінде. Вилучення цих даних - лише частина завдання. Сучасні програми також потребують зручного, гнучкого та привабливого способу відображення цих даних на веб-сторінці.
На щастя, ASP.NET підтримує розвинену та повнофункціональну модель. Прив'язка даних дозволяє зв'язати вилучені об'єкти даних з одним або більшим елементом керування на веб-сторінці, які потім автоматично їх відображають. Це означає, що не потрібно витрачати час на трудомістку підготовку логіки циклічного читання рядків, що складаються з численних стовпців, та маніпулювання окремими елементами управління.
Щоб ще більше спростити життя, можна скористатися елементами керування джерелами даних, доступними в ASP.NET. Ці елементи керування дозволяють визначати декларативний зв'язок між сторінкою та джерелом даних (наприклад, база даних або користувальницький компонент доступу до даних). Елементи управління джерелами даних чудові своєю здатністю до інфраструктури прив'язки даних. Конфігурувавши такий елемент керування джерелом даних, його можна пов'язати з веб-елементами керування під час проектування, а ASP.NET подбає про всі деталі.
Прив'язка даних - це засіб, який дозволяє асоціювати джерело даних з елементом управління з метою автоматичного відображення даних у цьому елементі управління. Ключовою характеристикою прив'язки даних є її декларативний, а не програмний характер. Це означає, що прив'язка даних визначена поза кодом, поряд з елементами керування, на сторінці .aspx. Перевага полягає в тому, що такий підхід дозволяє досягтибільш чіткого поділу між елементами керування та логікою коду веб-сторінки.
В ASP.NET більшість елементів керування (включаючи TextBox, LinkButton, Image та багато інших) підтримують прив'язку даних з одним значенням (single-value). Така прив'язка дозволяє зв'язати властивість елемента управління джерелом даних, але елемент управління може відображати єдине значення. Властивість, що прив'язується, не обов'язково повинна відображати щось видиме на сторінці. Наприклад, можна не тільки прив'язати текст гіперпосилання, встановивши властивості Hyperlink.Text, але також прив'язати властивість NavigateUrl для вказівки цільового призначення посилання. Для використання прив'язки одного значення створюються вирази прив'язки даних.
Багато веб-елементів управління підтримують прив'язку з багаторазовими значеннями (repeated-value), це означає, що вони можуть відображати набори елементів. Елементи управління з багаторазовими значеннями включають списки та екранні таблиці (двома прикладами можуть бути ListBox і GridView). Якщо елемент керування підтримує таку прив'язку, він завжди надає властивість DataSource, яка приймає об'єкт даних. (Зазвичай об'єкти даних є деякою колекцією, а кожен елемент у колекції представляє запис даних.)
Коли ви встановлюєте властивість DataSource, то створюєте логічний зв'язок серверного елемента управління з об'єктом даних, який містить інформацію, що підлягає відображенню. Однак це не наповнює безпосередньо елемент керування даними. Щоб досягти цього, необхідний метод елемента управління DataBind(), який проходить у циклі DataSource, витягує дані і оновлює сторінку. Прив'язка з багаторазовими значеннями є найбільш потужним типом прив'язки.
Обидва типи прив'язкирозглядаються у наступних розділах.
Прив'язка з одним значенням
Елементи керування, які підтримують прив'язку даних в режимі одного значення, дозволяють прив'язати деякі з їх властивостей виразу прив'язки даних. Цей вираз вводиться в частині .aspx розмітки сторінки (не в полі коду) і розміщується між роздільниками . Ось приклад:
Це може виглядати як блок сценарію, проте воно таким не є. Якщо ви спробуєте написати будь-який код усередині дескриптора, то отримаєте помилку. Єдине, що сюди можна помістити — це припустиме вираження прив'язки. Наприклад, якщо є загальнодоступна або захищена змінна на ім'я EmployeeName, можна написати наступне:
Щоб обчислити вираз прив'язки на зразок цього, ви повинні викликати у своєму коді метод Page.DataBind(). При викликі цього методу ASP.NET перевіряє усі вирази на сторінці та замінює їх відповідними значеннями (у даному випадку – поточним значенням змінної EmployeeName). Якщо ви забудете викликати метод DataBind(), вираз прив'язки не заповнить елемент управління - натомість він просто відкидається під час перетворення сторінки на HTML-розмітку.
Розміщувати вирази прив'язки даних можна практично будь-де сторінки, але зазвичай вираз прив'язки даних присвоюється властивості в дескрипторі елемента управління. Розглянемо приклад сторінки, яка використовує кілька виразів прив'язки даних:
Як бачите, можна не тільки прив'язати властивість Text елемента управління Label або TextBox, але також використовувати й інші властивості, подібні до ImageUrl елемента управління Image, NavigateUrl елемента управління HyperLink і навіть атрибуту src статичного HTML-дескриптора .
Можна також розмістити вираз прив'язки у будь-якому місці сторінки, не прив'язуючийого ні до якої властивості чи атрибуту. Наприклад, попередня веб-сторінка містить вираз прив'язки між дескрипторамиі. Під час обробки результуючий текст буде розміщено на сторінці і відображено шрифтом з напівжирним зображенням. Можна навіть помістити вираз поза розділом