- •Курсова робота
- •1.Пояснювальна записка
- •V. Детальне проектування
- •Vі Висновки
- •VII Література
- •2.Зміст додатків
- •1.1. Робота з серверними елементами управління Microsoft Ajax
- •3. Опис проекту
- •3.1. Проектування інтерфейсу
- •3.2. Основні елементи інтерфейсу
- •4. Детальне проектування
- •4.1. Розробка бази даних проекту, структура таблиць
- •4.2. Основні модулі, алгоритми
- •2. Постановка задачі
- •2.1. Призначення, функції та достоїнства додатку
- •Висновок
- •Література
- •Додаток 1 – Лістинг програми
- •Додаток 2 – Схеми проекту
1.1. Робота з серверними елементами управління Microsoft Ajax
Елемент управління UpdatePanel ASP.NET дозволяє створювати багаті клієнтські веб-додатки. За допомогою елементів управління UpdatePanel можна оновлювати окремі частини сторінки замість поновлення її цілком при зворотному передачі. Це називається оновленням часткової сторінки. Веб-сторінка ASP.NET, яка містить елемент керування ScriptManager і один або більше елемент управління UpdatePanel, може приймати участь в оновленні часткової сторінки без участі користувача клієнтського сценарію.
Елемент управління UpdatePanel - це серверний елемент управління, який допомагає розробляти веб-сторінки зі складною клієнтської обробкою, що робить веб-сторінки більш інтерактивними з точки зору кінцевого користувача. Написання коду, що взаємодіє з сервером і клієнтом з метою поновлення лише окремих частин веб-сторінки, зазвичай вимагає глибокого знання ECMAScript (JavaScript). Однак за допомогою елемента управління UpdatePanel можна використовувати оновлення часткової сторінки без написання клієнтських сценаріїв. Якщо потрібно, можна додати власний клієнтський сценарій для поліпшення умов роботи користувача. При використанні елемента управління UpdatePanel поведінку сторінки не залежить від оглядача і потенційно зменшує обсяг даних, переданих між клієнтом і сервером.
Елементи управління UpdatePanel працюють шляхом вказівки областей на сторінці, які можуть оновлюватися без оновлення всієї сторінки. Цей процес узгоджується серверним елементом управління ScriptManager і клієнтським класом PageRequestManager. Коли оновлення часткової сторінки включено, елементи управління можуть асинхронно відправляти дані на сервер. Асинхронний повторний виклик поводиться аналогічно звичайному в тому, що на сервері виконується повний життєвий цикл сторінки і елемента управління. Проте в разі асинхронного повторного виклику поновлення сторінки обмежені областями сторінки, укладеними в елементи управління UpdatePanel й позначеними як оновлювані. Сервер відправляє в оглядач розмітку HTML тільки для змінених елементів. У браузері клієнтський клас PageRequestManager виконує обробку моделі об'єктів документа (DOM), щоб замінити існуючий HTML оновленої розміткою.
При використанні асинхронної зворотної передачі або об'єкта XMLHTTPRequest може виникати помилка зворотної передачі, якщо URL містить багатобайтових символ. Можна вирішити цю проблему, включивши елемент <base href = "url" /> в елемент head сторінки, де атрибут href встановлений рівним рядку в кодуванні URL, яка посилається на цю сторінку. Можна додати цей елемент, динамічно доданий в код сервера.
Елемент управління UpdatePanel вимагає наявності на веб-сторінці елемента управління ScriptManager. За замовчуванням оновлення часткової сторінки включено, так як значення за замовчуванням властивості EnablePartialRendering елемента управління ScriptManager одно true.
Вміст в елемент управління UpdatePanel додається декларативно або в конструкторі, використовуючи властивість ContentTemplate. У розмітці це властивість представляється як елемент ContentTemplate. Щоб додати вміст програмним способом, використовується властивість ContentTemplateContainer.
Коли сторінка, що містить один або більше елементів, що управляють UpdatePanel, виконується спочатку, все вміст керуючих елементів UpdatePanel виконується і відсилається в оглядач. При наступних асинхронних повторних виклики можуть оновлюватися лише вміст окремих елементів управління UpdatePanel. Оновлення залежать від параметрів панелі, елемент якої здійснив повторний виклик, і від коду цієї конкретної панелі.
За замовчуванням будь-який елемент управління зворотним передачею в елементі управління UpdatePanel здійснює асинхронний повторний виклик і оновлює вміст панелі. Однак можна налаштувати інші елементи управління на сторінці на оновлення елемента управління UpdatePanel. Це робиться визначенням тригера для елемента управління UpdatePanel. Тригер - це прив'язка, яка вказує елемент управління зворотної передачі і подія, що викликає оновлення панелі. При виникненні вказаної події тригера (наприклад події кнопки Click), панель оновлюється.
Не обов'язково вказувати подія тригера. Якщо подія не задано, подія тригера - це подія за замовчуванням для елемента управління. Наприклад, подією за замовчуванням для елемента управління Button є подія Click.
Щоб використовувати елемент управління UpdatePanel на головній сторінці, необхідно вирішити, як включати елемент управління ScriptManager. Якщо включити ScriptManager на головній сторінці, він може використовуватися як елемент управління ScriptManager для всіх сторінок вмісту. (Якщо ви хочете декларативно зареєструвати сценарії або служби на сторінці вмісту, можна додати елемент керування ScriptManagerProxy на цю сторінку.)
Якщо головна сторінка не містить елемент керування ScriptManager, можна помістити ScriptManager на кожну сторінку вмісту, що містить елемент керування UpdatePanel. Вибір залежить від того, як передбачається управляти клієнтським сценарієм в додатку.
У деяких випадках елемент управління ScriptManager знаходиться на головній сторінці, і немає необхідності в відображенні часткових сторінок на сторінці вмісту. Тоді для цієї сторінки вмісту необхідно програмно встановити властивість EnablePartialRendering елемента управління ScriptManager в значення false.
Елементи управління UpdatePanel можуть бути вкладеними. При оновленні батьківської панелі всі вкладені панелі також оновлюються.
Коли внутрішній елемент управління GridView показує нову сторінку записів, зовнішня панель і панелі в інших рядках зовнішнього елемента управління GridView не оновлюється. При відображенні нової сторінки записів зовнішнім елементом управління GridView зовнішня панель і всі вкладені панелі оновлюються.
Щоб програмно додати елемент керування UpdatePanel на сторінку, потрібно створити новий екземпляр елемента управління UpdatePanel. Потім елементи управління додаються на нього за допомогою властивості ContentTemplateContainer і методу ControlCollection.Add. Не додавайте елементи управління безпосередньо в властивість ContentTemplate.
Коли елемент управління UpdatePanel додається програмними засобами, тільки повторні виклики від елементів управління в тому ж контейнері іменування, що і UpdatePanel, можуть бути використані як тригери для панелі.
Веб-частини ASP.NET - це інтегрований набір елементів управління для створення веб-вузлів, що дозволяють кінцевим користувачам змінювати вміст, зовнішній вигляд і поведінку веб-сторінок безпосередньо з оглядача. Елементи управління веб-частин можна використовувати в UpdatePanel з наступними обмеженнями:
Кожен елемент управління WebPartZone повинен бути всередині того ж UpdatePanel. Наприклад, на сторінці можна використовувати два елементи управління UpdatePanel, кожен з яких має свій власний елемент управління WebPartZone.
Елемент управління WebPartManager управляє всіма відомостями про стан клієнта для елементів управління веб-частин. Він повинен знаходитися в зовнішньому елементі управління UpdatePanel на сторінці.
Не можна здійснювати імпорт або експорт елементів управління веб-частин за допомогою асинхронних повторних викликів. (Для виконання цього завдання потрібно елемент управління FileUpload, який не може використовуватися з асинхронними повторними викликами.) За замовчуванням імпорт елементів управління веб-частин здійснює повний повторний виклик.
Не можна додавати або змінювати стилі елементів управління веб-частин під час асинхронних повторних викликів.
Наступні сценарії установки на сторінці кнопки повторного виклику за замовчуванням не підтримуються при асинхронних повторних викликах:
Програмне зміна DefaultButton при асинхронному повторному виклику.
Програмне зміна DefaultButton при асинхронному повторному виклику, коли Panel чи не знаходиться в UpdatePanel.
Наступні методи класу HttpResponse підтримуються тільки в сценаріях зворотної передачі, але не в сценаріях асинхронних повторних викликів:
BinaryWrite
Clear
ClearContent
ClearHeaders
Close
End
Flush
TransmitFile
Write
WriteFile
WriteSubstitution
Елемент управління UpdateProgress надає інформацію про стан щодо часткового оновлення сторінки в елементах управління UpdatePanel. Для елемента управління UpdateProgress можна налаштувати вміст і макет за замовчуванням. Щоб запобігти мерехтіння при занадто швидкому частковому оновленні сторінки, можна задати затримку перед відображенням елемента управління UpdateProgress.
Елемент управління UpdateProgress допомагає розробляти більш наочний користувальницький інтерфейс, коли веб-сторінка містить один або кілька елементів управління UpdatePanel для часткової відтворення сторінки. Якщо часткове оновлення сторінки виконується повільно, можна використовувати елемент управління UpdateProgress для надання візуальної зворотнього зв'язку про стан оновлення. На сторінці можна розмістити кілька елементів управління UpdateProgress, кожен з яких буде зіставлений з окремим елементом управління UpdatePanel. Крім того, можна використовувати один елемент управління UpdateProgress і зіставити його з усіма елементами управління UpdatePanel на сторінці.
Елемент управління UpdateProgress отрісовиваєт елемент <div>, який відображається або прихований в залежності від того, чи є впливом зіставлений елемент управління UpdatePanel асинхронну зворотну передачу. Для відтворення початкової сторінки або синхронної зворотної передачі елемент управління UpdateProgress не відображається.
Елемент управління UpdateProgress зіставляється з елементом управління UpdatePanel за допомогою завдання властивості AssociatedUpdatePanelID елемента управління UpdateProgress. Коли зворотна передача відбувається з елемента управління UpdatePanel, відображаються всі зіставлені елементи управління UpdateProgress. Якщо елемент керування UpdateProgress не приміряючи з певним елементом управління UpdatePanel, елемент управління UpdateProgress відображає хід виконання будь-асинхронної зворотної передачі.
Якщо властивості ChildrenAsTriggers елемента управління UpdatePanel присвоєно значення false і асинхронна зворотна передача відбувається з цього елемента управління UpdatePanel, будь зіставлений елемент управління UpdateProgress буде відображений.
Коли властивості Dynamic Layout присвоєно значення true, то спочатку елемент управління UpdateProgress не займає місце при відображенні веб-сторінок. Замість цього, сторінка динамічно змінюється, щоб показати вміст елемента управління UpdateProgress, коли це необхідно. Для підтримки динамічного відображення елемент управління промальовується як елемент <div>, у якого властивості стилю display спочатку присвоєно значення none.
Коли властивості DynamicLayout присвоєно значення false, елемент управління UpdateProgress займає місце при відображенні сторінки, навіть якщо він невидимий. В цьому випадку властивості стилю display елемента <div> для елемента управління присвоюється значення block, а для visibility спочатку задається значення hidden.
Елементи управління UpdateProgress можуть бути поміщені всередині або поза елементами управління UpdatePanel. Елемент управління UpdateProgress відображається, коли елемент управління UpdatePanel, з яким він зіставлений, оновлюється в результаті асинхронної зворотної передачі. Ця подія істинно, якщо елемент керування UpdateProgress знаходиться всередині іншого елемента управління UpdatePanel.
Якщо елемент керування UpdatePanel знаходиться всередині іншої панелі поновлення, зворотна передача відбувається в дочірньої панелі створює умови, щоб всі елементи управління UpdateProgress, зіставлені з дочірньою панеллю, були відображені. У ній також відображаються всі елементи управління UpdateProgress, зіставлені з батьківської панеллю. Якщо зворотна передача відбувається в проміжному дочірньому елементі управління батьківської панелі, відображаються тільки елементи управління UpdateProgress, зіставлені з батьківської панеллю. Це відповідає логіці запуску зворотних передач.
Часом відображення елемента управління UpdateProgress можна програмно керувати за допомогою подій beginRequest JavaScriptendRequest JavaScript класу PageRequestManager. У обробнику подій beginRequest, можна відобразити елемент DOM, який представляє елемент управління UpdateProgress. У обробнику подій endRequest можна приховати цей елемент.
Для відображення і приховування елементу управління UpdateProgress в наступних умовах необхідно надати клієнтський сценарій:
За час зворотної передачі з елемента управління, зареєстрованого як тригер асинхронної зворотної передачі для панелі поновлення, з яким не зіставлений елемент управління UpdateProgress.
Під час зворотних передач з елементів управління, програмно зареєстрованих як елементу управління асинхронної зворотної передачі за допомогою методу RegisterAsyncPostBackControl елемента управління ScriptManager. У цьому випадку елемент управління UpdateProgress не може автоматично визначити спрацьовування асинхронної зворотної передачі.
Елемент управління ASP.NET AJAX Timer виконує зворотні передачі через певні інтервали. Якщо використовується елемент керування Timer з елементом управління UpdatePanel, то можна включити часткові поновлення через певні інтервали. Також можна використовувати елемент управління Timer для передачі всієї сторінки.
Елемент управління Timer використовується для здійснення:
періодичного оновлення вмісту одного або декількох елементів управління UpdatePanel без оновлення всієї веб-сторінки;
запуску коду на сервері кожен раз, коли елемент управління Timer викликає зворотну передачу;
синхронної передачі всієї веб-сторінки на веб-сервер через певні інтервали.
Елемент управління Timer є серверним елементом управління, який впроваджує компонент JavaScript у веб-сторінку. Компонент JavaScript ініціює зворотний передачу від оглядача, коли закінчується інтервал, визначений у властивості Interval. Властивості для елемента управління Timer встановлюються в коді, який виконується на сервері, і ці властивості передаються компоненту JavaScript.
При використанні елемента управління Timer екземпляр класу ScriptManager потрібно включити в веб-сторінку.
Коли зворотна передача ініційована елементом управління Timer, елемент управління Timer викликає подія Tick на сервері. Можна створити обробник подій для події Tick, щоб виконувати дії при відправці сторінки сервера.
Встановіть властивість Interval для визначення того, як часто відбуватимуться зворотні передачі, і встановіть властивість Enabled, щоб включити або вимкнути Timer. Властивість Interval визначається в мілісекундах, і за замовчуванням його значення складає 60 000 мілісекунд, або 60 секунд.
Присвоєння невеликого значення властивості Interval елемента управління Timer може привести до значного збільшення трафіку до веб-сервера. Використовуйте елемент керування Timer для оновлення вмісту тільки так часто, як це потрібно.
Можна включити більше одного елемента управління Timer в веб-сторінку, якщо різні елементи управління UpdatePanel повинні оновлюватися з різними інтервалами. Також один екземпляр елемента керування Timer може бути тригером більш ніж для одного елемента управління UpdatePanel на веб-сторінці.
Коли елемент управління Timer включений в елемент управління UpdatePanel, елемент управління Timer автоматично діє як тригер для елемента управління UpdatePanel. Можна перевизначити цю поведінку шляхом завдання для властивості ChildrenAsTriggers елемента управління UpdatePanel значення false.
Для елементів управління Timer всередині елемента керування UpdatePanel тимчасової компонент JavaScript заново створюється, тільки коли закінчується поточна зворотна передача. Таким чином, часовий інтервал не почалась, поки сторінка не виконає зворотну передачу повністю. Наприклад, якщо для властивості Interval задано значення в 60 000 мілісекунд (60 секунд), але виконання поточної зворотної передачі займає 3 секунди, то наступна зворотна передача відбудеться через 63 секунди.
Коли елемент управління Timer знаходиться поза елементом управління UpdatePanel, потрібно явно визначити елемент управління Timer як тригер для елемента управління UpdatePanel, який потрібно оновити.
Якщо елементи керування Timer знаходяться поза елементом управління UpdatePanel, то тимчасової компонент JavaScript залишиться активним і при виконанні зворотної передачі. Наприклад, якщо для властивості Interval задано значення в 60 000 мілісекунд (60 секунд) і виконання поточної зворотної передачі займає 3 секунди, то наступна зворотна передача відбудеться через 60 секунд. Користувач буде бачити оновлений вміст в елементі управління UpdatePanel тільки протягом 57 секунд.
Для властивості Interval необхідно встановити значення, що дозволяє зробити повну асинхронну зворотну передачу до ініціалізації наступної зворотної передачі. Якщо нова зворотна передача ініціюється під час обробки попередньої зворотної передачі, то ініційована раніше передача скасовується.
Елемент управління ScriptManager управляє клієнтським сценарієм для веб-сторінок ASP.NET, що підтримують технологію AJAX. За замовчуванням елемент управління ScriptManager реєструє сценарій для Microsoft AJAX (бібліотека) на сторінці. Це дозволяє клієнтського сценарієм використовувати розширення системи типів і підтримувати такі можливості, як часткова отрисовка сторінки і виклики веб-служби.
На сторінці повинен використовуватися елемент управління ScriptManager, щоб активувати наступні можливості AJAX ASP.NET:
Функціональність клієнтського сценарію Microsoft AJAX (бібліотека) і будь-який призначений для користувача сценарій, який потрібно відправити веб-браузера. Додаткові відомості див. У розділі Створення призначеного для користувача клієнта сценарію за допомогою бібліотеки Microsoft AJAX.
Часткову отрисовку сторінки, яка дозволяє незалежно оновлювати області сторінки без зворотної передачі. Елементи управління ASP.NET UpdatePanel, UpdateProgress і Timer вимагають наявності елемента управління ScriptManager для підтримки часткової відтворення сторінки.
Проксі-класи JavaScript для веб-служб, які дозволяють використовувати клієнтський сценарій для доступу до веб-служб і особливим чином поміченим методам на сторінках ASP.NET. Це виконується за допомогою відображення веб-служб і методів сторінки як строго типізованих об'єктів.
Класи JavaScript для доступу до служб перевірки автентичності ASP.NET, управління ролями і профілів додатків.
Якщо сторінка містить один або кілька елементів управління UpdatePanel, то елемент управління ScriptManager управляє часткової отрисовкой сторінки в браузері. Елемент управління взаємодіє з життєвим циклом сторінки для поновлення частин сторінки, які знаходяться всередині елементів управління UpdatePanel.
Властивість EnablePartialRendering елемента управління ScriptManager визначає, чи бере участь сторінка в часткових оновленнях. За замовчуванням властивість EnablePartialRendering має значення true. Таким чином, за замовчуванням часткова отрисовка сторінки активується при додаванні на сторінку елемента управління ScriptManager.
Під час часткової відтворення сторінки помилки можна обробляти наступним чином:
Задайте властивість AllowCustomErrorsRedirect. Воно визначає, як використовується розділу Користувачів помилок файлу Web.config при виникненні помилки в ході асинхронної зворотної передачі.
Обробіть подія AsyncPostBackError елемента управління ScriptManager, яке виникає при наявності помилки в ході асинхронної зворотної передачі.
Задайте властивість AsyncPostBackErrorMessage, яке є повідомленням про помилку, що відправляється оглядачеві.
Microsoft AJAX (бібліотека) додає розширення системи типів до JavaScript, що надають простору імен, успадкування, інтерфейси, перерахування, відображення і допоміжні функції для рядків і масивів. Ці розширення надають функції в клієнтському сценарії, подібні до .NET Framework. Вони дозволяють писати ASP.NET AJAX сумісні програми структурованим способом, що полегшує подальшу підтримку додатків, додавання нових функцій і рознесення функціональності по верствам. Додавання елемента керування ScriptManager на веб-сторінку ASP.NET автоматично включає розширення системи типів, тому можна використовувати бібліотеку в клієнтському сценарії.
Використовуйте елемент управління ScriptManager для управління ресурсами, створеними для елементів управління, що беруть участь в часткових оновлення сторінок. Ресурси включають сценарії, стилі, приховані поля і масиви. Колекція Scripts елемента управління ScriptManager містить об'єкт ScriptReference для кожного сценарію, доступного оглядачеві. Сценарії можна визначати примусово або програмними засобами.
Елемент управління ScriptManager також надає методи реєстрації, які можна використовувати для управління клієнтськими сценаріями і прихованими полями за допомогою програмних засобів. При реєстрації сценарію або прихованих полів, що підтримують часткові поновлення, необхідно викликати методи реєстрації елемента управління ScriptManager. (Для реєстрації сценаріїв, які не потрібні для часткових оновлень, використовуйте методи класу ClientScriptManager).
Будь-які сценарії сторінки, які реєструються за допомогою елемента управління ScriptManager, а також весь сценарій обробки подій повинні бути всередині елемента form сторінки. В іншому випадку сценарій не буде зареєстрований або виконаний.
Щоб зареєструвати веб-службу, яку потрібно викликати зі сторінки ASP.NET, що підтримує AJAX, необхідно зареєструвати веб-службу, додавши її в колекцію Services елемента управління ScriptManager. Платформа ASP.NET AJAX створює клієнтський проксі-об'єкт для кожного об'єкта ServiceReference в колекції Services. Проксі-класи та їх строго типізовані члени спрощують використання веб-служб з клієнтського сценарію.
Можна програмно додавати об'єкти ServiceReference до колекції Services для реєстрації веб-служб під час виконання. Додаткові відомості див. У розділі Веб-служби в ASP.NET AJAX.
Microsoft AJAX (бібліотека) включає проксі-класи для виклику служб додатків ASP.NET 2.0, що відповідають за перевірку справжності за допомогою форм, взаємодія з ролями і профілями, безпосередньо з JavaScript. При необхідності використовувати клієнтської служби та пароль можна зареєструвати її за допомогою елемента управління ScriptManager.
На сторінку може бути доданий тільки один екземпляр елемента управління ScriptManager. Сторінка може містити елемент управління, прямо або побічно, у вкладеному компоненті, такому як користувальницький елемент управління, сторінка вмісту головної сторінки або вкладена головна сторінка. Якщо сторінка вже містить елемент керування ScriptManager, але вкладений або батьківський компонент потребує додаткових можливостях елемента управління ScriptManager, то компонент може містити елемент управління ScriptManagerProxy. Наприклад, елемент управління ScriptManagerProxy дозволяє додавати сценарії і служби, які стосуються вкладеним компонентів.
Отже, Microsoft Ajax має можливість під завантажувати елементи на сторінку без її оновлення, дає управління над оновленням сторінки за допомогою методів інтервальності.
