- •Огляд сучасних Інтернет - технологій. Технологія asp.Net
- •Серверні елементи керування Label, TextBox, Button, Image, Table
- •Робота з xml
- •Файли перетворення документа
- •Файли визначення схеми документа
- •Клас XmlReader
- •Клас xPathDocument
- •Елемент управління xml
- •Створення простої сторінки, що використовує інформацію з бази даних
- •Елементи керування для відображення даних (repeater, datalist і datagrid)
- •Шаблони дизайну сторінок asp.Net
- •Зміст за замовчуванням
- •Програмне призначення головної сторінки
- •Вкладені майстер-сторінки
- •Послідовність подій
- •Створення структури переходів Web вузла
- •Елемент керування SiteMapPath
- •Програмне керування TreeView
- •Елемент керування Menu
Створення простої сторінки, що використовує інформацію з бази даних
Варіант 2
Web-developer. Структура вікна. Проект додатку asp.net
Якщо ви придбаєте Visual Studio. NET 2005, то для роботи достатньо буде тільки його. . NET Framework міститься на дисках. До його складу входить Visual Web Developer, який дозволяє створювати професійні web-додатки, а також desktop-додатки на різних мовах програмування. Продукти Microsoft випускаються на DVD, але є набір з двох CD від "Мегасофт". Visual Studio. NET 2005 потребує близько 2 Гб дискового простору. При цьому інсталюється ASP. NET 2.0, середовище розробки, SQL Server Express, вбудований web-сервер, Crystal Reports із спеціальними елементами управління для ASP. NET 2.0.
Безкоштовно розповсюджується програмне забезпечення
Visual Web Developer 2005 Express Edition - вільно розповсюджувана середовище, призначене для новачків і студентів, доступна за адресою http://msdn.microsoft.com/vstudio/express/vwd/. Список відмінностей VWD від Visual Studio. NET 2005 невеликий і для початківців неістотний. Він наведений тут: http://msdn.microsoft.com/vstudio/products/compare/default.aspx
Інсталятор VWD має об'єм 2,8 Мб, але в процесі інсталяції він завантажить ще 40 Мб і 80 Мб, якщо захочете встановити документацію. При цьому також буде встановлено . NET Framework з ASP. NET 2.0.
Елементи керування для відображення даних (repeater, datalist і datagrid)
Елементи-споживачі даних
Споживачі даних відображають дані, отримані з класів-джерел даних. Вони надають багато корисних функцій. Наприклад, елемент керування GridView може не тільки показувати дані, але і сортувати, вибирати, редагувати їх. Якщо цієї функціональності недостатньо, її можна розширити, написавши власні обробники подій.
Елементи, які можуть бути пов'язані з елементами-джерелами даних
DropDownList, ListBox, CheckBoxList, RadioButtonList, BulletedList. Однак для всіх них необхідно в якості джерела даних вказувати не DataSource, А DataSourceID. Всі ці елементи можуть відображати тільки одне поле, зазначене в DataTextField, З можливістю завдання друге як індексного у властивості DataValueField:
Синтаксис динамічного зв'язування
Для прив'язки до даних використовуються роздільники <% #%>. В життєвому циклі кожного елемента керування настає подія DataBinding, Під час якого і обчислюються всі вирази, укладені в цей тег.
Repeater
Repeater в перекладі означає "той, хто повторює". Серед його значень "студент-другорічник" і "злодій-рецидивіст". Адже вони теж повторюють те, що робили. Але це "погані" значення, а "добре" - елемент-повторювач заданого шаблону для всіх полів джерела даних.
Шаблон - це безліч тегів HTML і серверних елементів керування, які задають зразок для відображення складової частини складного елемента керування. DataGrid може використовувати шаблони чи ні, але Repeater без них існувати не може - сам по собі він не має візуального представлення. Таким чином, програміст сам визначає його зовнішній вигляд. Крім DataSourceID і DataMember, Власних властивостей у нього немає. Тому у програміста є повний контроль над тим, як виводиться Repeater
DataList
DataList має ті ж риси, що й Repeater, Тобто виводить дані згідно з шаблонами. Проте це більш багатий елемент управління. По-перше, він підтримує вибір, редагування, видалення або вставку. Тому список шаблонів поповнився SelectedItemTemplate і EditItemTemplate. Крім того, у нього є верхній і нижній колонтитули зі стилями HeaderStyle і FooterStyle.
По-друге, можна змінити способи відображення. За замовчуванням DataList виводить дані поколонно в таблиці. Властивість RepeatLayout, Встановлене як Flow, Прибирає табличні теги з вихідного потоку.
За промовчанням елемент DataGrid сам визначає кількість полів у джерелі даних і генерує колонки таблиці. Це визначається властивістю AutoGenerateColumns. З елементом управління DataGrid можуть бути пов'язані не всі типи даних. Підтримуються примітивні типи, рядки, DataTime і Decimal. Якщо в полі непідтримувану, стовпець не буде створено. Якщо жодного відповідного поля немає, буде викинуто виключення.
DataGrid має заголовок (Header), Який за замовчуванням видно, і нижній колонтитул (Footer). При автоматичної генерації в заголовку кожного стовпця виводиться назва поля.
Якщо AutoGenerateColumns встановити в False, Можна самим керувати колонками і визначати більш складний його вигляд. У такому випадку треба включати в DataGrid елементи BoundColumn. Деякі властивості BoundColumn:
DataField визначає поле джерела даних;
DataFormatString задає формат виводу даних;
ReadOnly робить поле недоступним для редагування.
У заголовку і нижньому колонтитулі можна встановити будь-який текст, а в заголовку - ще й картинку (HeaderText, FooterText, HeaderImageUrl).
У комірку генерується DataGrid таблиці вставляється LiteralControl, Текст якого береться з джерела даних і форматується відповідно до DataFormatString. Для поточного рядку в комірці з'являється TextBox.
Є й інші типи колонок.
ButtonColumn відображає в кожному рядку командну кнопку. Якщо пов'язати її з полем, на кнопках будуть написи з цього поля.
EditCommandColumn показує кнопки для редагування.
HyperLinkColumn перетворює текст на гіперпосилання. Наприклад, поле PhotoPath можна показати в такій колонці, і тоді клацання по посиланню покаже фотографію.
TemplateColumn дозволяє визначити шаблон відображення, як у DataList.
При бажанні можна програмно приховувати і показувати колонки, наприклад:
DataGrid1.Columns [1]. Visible =! (DataGrid1.Columns [1]. Visible);
У елемента DataGrid є 7 властивостей, які задають стилі різних його частин або типів рядків. Всі вони мають тип TableItemStyle. Це AlternatingItemStyle, EditItemStyle, FooterStyle, HeaderStyle, ItemStyle, PagerStyle і SelectedItemStyle. Стилі утворюють ієрархію, тобто атрибут "Стиль", який вище в ієрархії, успадковує ті, що нижче, якщо він його не перевизначають. Порядок в ній такий:
EditItemStyle - Стиль поточного рядку;
SelectedItemStyle - Стиль вибраної рядка;
AlternatingItemStyle - Стиль кожній другій рядка;
ItemStyle - Стиль рядка за умовчанням;
ControlStyle - Всі властивості, які впливають на зовнішній вигляд елемента, наприклад BackColor. PagerStyle, FooterStyle, HeaderStyle теж його успадковують.
PagerStyle - Стиль пейджера, тобто номерів сторінок-гіперпосилань, при виборі яких таблиця перегортається. Щоб пейджер з'явився, повинен бути встановлений атрибут AllowPaging і кількість записів має бути більше PageSize. Всі ці властивості зручно встановлювати за допомогою PropertyBuilder.
Покажемо можливість видалення, оновлення і редагування даних у DataGrid за допомогою SqlDataSource.
Створіть на сервері SQL у базі DemoBase таблицю Users з трьома полями:
Column Name |
Data Type |
Allow Nulls |
UID |
int |
|
Name |
varchar (50) |
|
Comments |
varchar (250) |
+ |
IsRegistered |
bit |
+ |
Поле UID - автоматичний. Тому операція INSERT не буде вимагати завдання його значення. Звичайно, це первинний ключ. У таблиці властивостей знайдіть IdentitySpecification, Розкрийте його і виберіть (IsIdentity).
Будемо працювати з таблицею за допомогою трьох процедур.
CREATE PROCEDURE dbo.SelectUsers
(
@ Col INT = 0
)
AS
IF @ Col = 0
SELECT * FROM Users
ELSE IF @ Col = 1
SELECT * FROM Users ORDER BY NAME
RETURN
Процедура EditUser буде використовуватися для вставки записів, якщо @ UID, І для відновлення в іншому випадку:
CREATE PROCEDURE dbo.EditUser
(
@ UID int = 0,
@ Name varchar (50),
@ Comments varchar (250),
@ Registered bit
)
AS
IF @ UID = 0
INSERT INTO Users (Name, Comments, IsRegistered)
VALUES (@ Name, @ Comments, @ Registered)
ELSE
UPDATE Users SET Name = @ Name, Comments = @ Comments,
IsRegistered = @ Registered WHERE UID = @ UID
RETURN
Процедура для видалення записів.
CREATE PROCEDURE dbo.DeleteUser
(
@ UID int
)
AS
DELETE FROM Users WHERE UID = @ UID
RETURN
На формі буде знаходитися, окрім DataGrid, Два елементи редагування -- NameTextBox, А також CommentTextBox і кнопка Add. Для наших таємних цілей додамо елемент керування типу HiddenField. Ці цілі - зберігати id поточного елемента і передавати його SqlDataSource
