C # для професіоналів
Для кого призначена ця книга
Основні теми книги
Платформа .NET пропонує нове середовище, в якій можна розробляти практично будь-який додаток, що діє під керуванням Windows, а мова C # - нова мова програмування, створена спеціально для роботи з .NET.
У цій книзі представлені всі основні концепції мови C # і платформи .NET. Повністю описується синтаксис C #, наводяться приклади побудови різних типів додатків з використанням C # - створення додатків і служб Windows, додатків і служб WWW за допомогою ASP.NET, а також елементів управління Windows і WWW Розглядаються загальні бібліотеки класів .NET, зокрема, доступ до даними за допомогою ADO.NET і доступ до служби Active Directory із застосуванням класів DirectoryServices.
Ця книга призначена для досвідчених розробників, можливо, мають досвід програмування на VB, C ++ або Java, але не використовували раніше в своїй роботі мову C # і платформу .NET. Програмістам, що застосовують сучасні технології, книга дасть повне уявлення про те, як писати програми на C # для платформи .NET.
• Всі особливості мови C #
• C # і об'єктно-орієнтоване програмування
• Програми та служби Windows
• Створення web-сторінок і web-служб за допомогою ASP NET
• Доступ до даних за допомогою ADO NET
• Створення розподілених додатків за допомогою NET Remoting
• Інтеграція з COM, COM + і службою Active Directory
Розділи на цій сторінці:
Палітра елементів управління
Елементи управління сервера Web
Всі елементи управління сервера Web успадковуються з класу System.Web.UI.WebControls.WebControl. який, в свою чергу, успадковується з класу System.Web.UI.Control. У зв'язку з цим вони володіють багатьма загальними властивостями і подіями, які при необхідності можна використовувати. Їх досить багато, тому не всі вони будуть тут показано, також як і властивості, і події самих елементів управління сервера Web.
Багато з часто використовуваних успадкованих властивостей мають справу зі стилем виведення зображення за допомогою таких властивостей, як ForeColor. Backcolor. Font і т. Д. Але можна вдатися також до допомоги класів CSS (каскадних таблиць стилів), задаючи для строкового властивості CssClass ім'я класу CSS в окремому файлі. Іншими примітними властивостями є Width і Height для розміру елемента управління, AccessKey і TabIndex для полегшення взаємодії користувача, і Enabled для визначення того, що функціональність елемента управління забезпечується в формі Web.
З подій ми, напевно, частіше за все будемо використовувати успадковане подія Event для виконання ініціалізації елемента управління, і PreRender для виконання останніх модифікацій перед тим, як HTML виведе елемент управління.
Існує безліч інших подій і властивостей, багато хто з них ми обговоримо більш докладно пізніше, при розгляді спеціальних елементів управління. Список елементів управління сервера Web включає в себе:
Простий висновок тексту, використовує властивість Text для завдання і програмного зміни зображуваного тексту.
Надає текстове вікно, яке користувачі можуть редагувати. Використовує властивість Text для доступу до введених даних і подія TextChanged для дії на зміни при зворотному відправці. Якщо потрібно автоматична зворотна відправка (на противагу використанню кнопки і т.д.), задайте властивість AutoPostBack як true.
Дозволяє користувачу вибрати один варіант зі списку вибору або безпосередньо зі списку, або вводячи першу букву або дві. Використовує властивість Items для завдання списку позицій (це клас ListItemCollection. Містить об'єкти ListItem) і властивості SelectedItem і SelectedIndex для визначення того, що вибрано. Подія SelectedIndexChanged може використовуватися для з'ясування, чи змінився вибір, і цей елемент управління має також властивість AutoPostBack. щоб ця зміна вибору включало операцію зворотного пересилання.
Дозволяє користувачу вибрати один або кілька елементів зі списку. Задайте SelectionMode як Multiple або Single. щоб визначити, скільки елементів можна вибрати одночасно, і Rows. щоб визначити, скільки елементів показувати. Інші властивості і події такі ж, як і у DropDownList.
Виводить зображення. Використовуйте ImageUrl для посилання на зображення, і AlternateText для виведення тексту, якщо зображення не може завантажитися.
Виводить кілька зображень по черзі з висновком різних зображень після кожного звернення до сервера. Використовуйте властивість AdvertisementFile для визначення файлу XML, що описує можливі зображення (подробиці можна знайти в MSDN) і подія ADCreated для виконання обробки, перш ніж кожне зображення надсилається назад. Можна також використовувати властивість Target для вказівки відкривається вікна, коли відбувається клацання мишею на зображенні.
Виводить прапорець, який може бути встановлений або не встановлено. Стан зберігається в логічному властивості Checked. а текст, пов'язаний з полем прапорця - у властивості Text. Властивість AutoPostBack може використовуватися для ініціювання автоматичної зворотної відправки, а подія CheckedChanged - для дії при змінах.
Створює групу полів прапорців. Властивості і події ідентичні іншим елементам управління списків, таким як DropDownList.
Виводить кнопку, яка може бути включена або виключена. Зазвичай вони групуються, так що тільки одна кнопка в групі може бути активною, використовуйте властивість GroupName для з'єднання елементів управління RadioButton в групу. Інші властивості і події, як в елементі управління CheckBox.
Створює групу перемикачів, де тільки одна кнопка в групі може бути обрана в даний момент часу. Властивості і події - як в інших елементах управління списками.
Дозволяє користувачу вибрати дату на графічному зображенні календаря. Цей елемент управління має безліч властивостей, що мають відношення до стилю, але основна функціональність може бути отримана за допомогою властивостей SelectedDate і VisibleDate (типу System.DateTime), щоб отримати доступ до дати, обраної користувачем і місяця для виведення (який завжди буде містити VisibleDate) . Ключовою подією для прив'язки є SelectionChanged. Зворотній відправка з цього елемента управління виконується автоматично.
Стандартна кнопка для натискання користувачем. Використовує властивість Text для тексту та подія Click для відповіді на натискання (зворотна відправка на сервер виконується автоматично). Може також використовувати подія Command для відповіді на послідовні натискання, що дає при отриманні доступ до додаткових властивостей CommandName і CommandArgument.
Ідентичний Button. але виводить кнопку як гіперпосилання.
Виводить зображення, яке служить в якості кнопки для натискання. Властивості і події успадковуються з Button і Image.
Визначає таблицю. Під час проектування застосовуйте його в поєднанні з TableRow і TableCell або програмним шляхом присвоюйте рядки за допомогою властивості Rows. типу TableRowCollection. Це властивість можна також використовувати для змін під час виконання. Цей елемент управління має кілька властивостей для стилів, специфічних для таблиць, таких же, як в TableRow і TableCell.
Визначає рядок всередині Table. Ключовою властивістю є Cells. яке є класом TableCellCollection. що містить об'єкти TableCell.
Визначає окрему клітинку усередині TableRow. Використовуйте властивість Text для завдання тексту для виведення, Wrap - для визначення, чи потрібно згортати текст, і RowSpan і ColumnSpan для визначення, яку частину таблиці займає осередок.
Контейнер для інших елементів управління. Можна використовувати HorizontalAlign і Wrap для визначення того, як організовується вміст.
Використовується для виведення даних із запиту даних, надаючи велику гнучкість за допомогою шаблонів. Ми детально розглянемо цей елемент управління пізніше в цій главі.
Аналогічний елементу управління Repeater. але має більше гнучкості, коли необхідно організувати і відформатувати дані. Може, наприклад, автоматично вивести таблицю, яку можна буде редагувати. Його ми також будемо розглядати пізніше.
Аналогічний Repeater і DataList з декількома додатковими можливостями, такими, як сортування. Детальніше буде розглянуто пізніше.
Елементи управління перевіркою достовірності
Елементи управління перевіркою достовірності надають метод перевірки достовірності введених користувача (в більшості випадків) взагалі без написання будь-якого коду. Коли ініціюється зворотна відправка, кожен елемент управління виконує перевірку, яку він підтверджує, і змінює відповідно свою властивість isValid. Якщо це властивість буде false. то введення користувача для елемента перевірки достовірності не отримав підтвердження. Сторінка, що містить всі елементи управління, також має властивість isValid. якщо у будь-якого з елементів управління перевіркою достовірності властивість isValid задано як false. то це властивість сторінки також матиме значення false. Це властивість можна перевіряти з серверного коду і діяти відповідно до нього.
Однак елементи керування перевіркою достовірності мають другу функцію. Вони не тільки перевіряють елементи керування під час виконання, але можуть також автоматично виводити користувачам корисні рекомендації. Якщо задати для властивості ErrorMessage яке завгодно текстове значення, то користувач побачить його, коли спробує відправити назад невірні дані.
Що зберігається в ErrorMessage текст можна вивести в тому місці, де розташований елемент управління перевіркою достовірності або в іншому місці з повідомленнями про всі інші елементи управління перевіркою достовірності на сторінці. Така поведінка досягається за допомогою елемента управління ValidationSummary. який виводить, якщо буде потрібно, всі повідомлення про помилки разом з додатковим текстом.
Всі елементи управління перевіркою успадковують з класу BaseValidator. і тому володіють деякими загальними важливими властивостями. Можливо, найбільш важливим є розглянуте вище властивість ErrorMessage і в цьому випадку властивість ControlToValidate можна вважати другим за важливістю. Це властивість визначає ідентифікатор (ID) елемента управління, який перевіряється. Іншою важливою властивістю є Display. яке визначає, чи помістити текстове повідомлення в підсумковій позиції перевірки (якщо задано як none) або в позиції перевіряючого елемента. Є також можливість залишити місце для повідомлення про помилку, навіть коли воно не виводиться (задаючи Display як Static) або динамічно виділяти місце, коли буде потрібно, що може злегка зрушувати вміст сторінки (задаючи Display як Dynamic).
Ми скоро розглянемо приклад, але спочатку коротко опишемо різні елементи управління перевіркою: