Навігація
Головна
 
Головна arrow Інформатика arrow Проектування і розробка web-додатків
< Попередня   ЗМІСТ   Наступна >

ОСНОВНІ ВЛАСТИВОСТІ ПОВ'ЯЗУЮТЬСЯ З ДАНИМИ ЕУ

Одним з найбільш ефективних способів використання в web- пріложсніі даних з різних джерел є можливість їх зв'язування з елементами управління. В ASP.Net є велика група серверних елементів управління, які можна пов'язувати з джерелами даних. Такі ЕУ називаються пов'язаними з даними елементами управління .

Зв'язування з даними (data binding) є процесом отримання даних з деякого джерела і присвоєння їх властивостями елементів управління. При формуванні такими ЕУ коду розмітки (при рендеринге) в неї будуть включатися пов'язані дані.

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

Однак для зміни зовнішнього вигляду (подання) ЕУ недостатньо просто поставити значення цим властивостям. Реальний процес зв'язування ЕУ з даними починається при виклику методу DataBind () у ЕУ або у об'єкта Раді. Для ЕУ виконання операції зв'язування з даними означає оновлення його внутрішнього стану, щоб відображати колекцію значень, присвоєну його властивостями. І нарешті, при формуванні ЕУ відповідної йому розмітки (в результаті виклику на виконання методу RenderControl ()) в цю розмітку будуть включатися дані, пов'язані з ЕУ.

Наприклад, можна пов'язати з даними обліковий серверний ЕУ, включений в шаблон web-форми:

<Asp: DropDownList id = "ddList1" runat = "server">

Для цього потрібно задати джерело даних у вигляді об'єкта класу SqlDataReader:

protected void Page_Load (object sender, EventArgs e) {

if (UsPostBack) {

ddLisfl.DataSource = GetData ();

ddListl.DataTextField = "country";

ddListl.DataValueField = "country";

ddList1.DataBind ();

}

}

// Метод вибірки даних з бази даних за допомогою об'єкта DataReader

SqlDataReader GetCityData () {

string connectionstring = "Data Souce = localhost / sqlexpress;

Initial Catalog = Northwind; Integrated Security = True ";

SqlConnection connection = new SqlConnection (connectionstring);

connection.Open ();

string commandText = "select distinct country from Customers";

SqlCommand command = new SqlCommandfcommandText, connection);

SqlDataReader dr = command.ExecuteReader ();

return dr;

Таблиця 4.7

Основні властивості зв'язування елементів управління з даними

властивість

опис

DataSource

Посилання на об'єкт, який містить колекцію елементів. Цей об'єкт повинен реалізовувати інтерфейс, який підтримує зв'язування даних, зазвичай це ICollection

DataSourcelD

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

DataMember

Якщо джерело даних містить кілька колекцій даних (наприклад, об'єкт DataSet може містити кілька DataTable), властивості DataMember задається ім'я колекції даних, з якої будуть вилучатись дані

DataTextField

Деякі ЕУ можуть показати тільки одне значення елемента даних (наприклад, спискові ЕУ). Властивість DataTextField задає поле (при роботі з записами) або властивість (при роботі з об'єктами) елемента даних, яке містить значення для відображення на сторінці

DataValueField

Це властивість аналогічно властивості DataTextField, але задане значення елемента даних нс відображається на сторінці, а зберігається в атрибуті value використовуваного HTML-тега. Це дозволяє отримати дане значенням в коді програми.

В результаті виконання даного коду буде отримано список, що випадає з усіма країнами, де є клієнти (Customers) компанії з бази даних Northwind.

Недоліком даного коду є те, що рядок з'єднання міститься в програмному коді. Якщо буде потрібно змінити розташування БД або використовуваний провайдер, то такий код треба буде коригувати. Краще рядок з'єднання зберігати в файлі конфігурації (яку може коригувати адміністратор web-додатки), а в коді її зчитувати з файлу конфігурації.

Це можна зробити за допомогою об'єкта WebConfigurationManager, який визначений в просторі імен System.Web.Configuration наступним чином:

using System.Web.Configuration;

string connectionstring = WebConfigurationManager.ConnectionStrings [ "Northwind") .Connectionstring:

To ж саме зв'язування облікового ЕУ з джерелом даних можна виконати без виконання програмування, використовуючи компоненти зв'язування з джерелами даних. Для цього потрібно створити компонент зв'язування з джерелом даних (розмістити його на формі) і налаштувати:

<Asp: SqlDataSource ID = "SqlDS1" runat- "server"

ConnectionString = "<% $ ConnectionStrings: Northwind%>"

SelectCommand = "SELECT select distinct country from Customers">

</ Asp: SqlDataSource>

Потім у ЕУ DropDownList як джерело вказати створений компонент:

<Asp: DropDownList id = "ddList1" DataSourcelD-'SqlDST runat = "server">

В результаті отримаємо аналогічний результат.

 
Якщо Ви помітили помилку в тексті позначте слово та натисніть Shift + Enter
< Попередня   ЗМІСТ   Наступна >
 
Дисципліни
Агропромисловість
Аудит та Бухоблік
Банківська справа
БЖД
Географія
Документознавство
Екологія
Економіка
Етика та Естетика
Журналістика
Інвестування
Інформатика
Історія
Культурологія
Література
Логіка
Логістика
Маркетинг
Медицина
Нерухомість
Менеджмент
Педагогіка
Політологія
Політекономія
Право
Природознавство
Психологія
Релігієзнавство
Риторика
Соціологія
Статистика
Техніка
Страхова справа
Товарознавство
Туризм
Філософія
Фінанси
Пошук