Кратко съдържание



страница28/33
Дата23.07.2016
Размер10.53 Mb.
#1889
1   ...   25   26   27   28   29   30   31   32   33

Уеб контроли


Уеб контролите представляват компоненти, от които се изграждат ASP.NET уеб формите. Те се изпълняват на сървъра по време на зареждане на уеб формата и се "рендират" (трансформират) до HTML контроли, които след това се визуализират от клиентския уеб браузър.

ASP.NET сървърни контроли


ASP.NET сървърната контрола (ASP.NET server control) е компонент, който се изпълнява на сървъра и обвива потребителски интерфейс и друга функционалност. Сървърните контро­ли се използват в ASP.NET страници­те и code-behind класовете. Сред тях има контроли за бутони, текстови полета (text boxes), падащи (drop-down) списъци и други.

Всички server контроли имат атрибутите id и text, както и runat="server" атрибута. Последният атрибут означава, че логиката (кода) на контролата се изпълнява на сървъра, а не при клиента, както е с HTML елементите.

Сървърните контроли ни дават възможност за обработка на събития в код, изпълняван на сървъра. Обработчик на събитие е процедура, която се изпълнява в резултат потребителско действие (щракане на бутон, списък и др). Кодът, който се изпълнява, се слага в така наречените събитийни (event) процедури. Вие като програмист на уеб форми решавате как да обработвате събитията на съответната контрола.

Общ модел на ASP.NET сървърните контроли


В ASP.NET сървърните контролите са базирани на общ модел и като резул­тат споделят голям брой атрибути.

Например, когато трябва да се смени цветът на фона на контрола, винаги се използва едно и също свойството BackColor. Следният HTML код, който описва server контрола, показва някои типични атрибути:




Специфичен за различните браузъри HTML код


Когато една страница се подготвя за клиента (rendering), сървърната кон­трола доставя HTML код, съобразен с вида на браузъра, подал заявката.

Например, ако браузърът поддържа възможност за четене на скрипт (client-side scripting), какъвто е Internet Explorer version 4.0 или по-нова, контролите създават такъв клиентски скрипт (client-side script), за да си имплементират част от функционалността директно на клиентския брау­зър. Ако не поддържа клиентски скрипт, контролите създават код, изпъл­няван на сървъра (server-side код), който имплементира същата функцио­налност, но за да се получи същата функционалност се правят повече заявки до сървъра.

Следният код е отрязък от ASP.NET уеб форма, която ще създаде текстово поле с текст "Enter your Username":

Enter your Username

Когато тази страница се достъпва от потребител с Internet Explorer 6, сре­дата за управление (CLR) създава следния HTML код:



Server контролите могат да генерират различен HTML код за отделните браузъри. Примерно контролът Panel, води до генериране на <div> в Internet Explorer 6, а на другите браузъри <table>. За разработчиците това става прозрачно и ни позволява да се концентрираме върху логиката на приложението.

HTML сървърни контроли (HTML server controls)


HTML сървърните контроли наподобяват традици­онните HTML елементи.

HTML елементите се третират от уеб формата като обикновен текст и техните атрибути не са достъпни за сървъра. С конвертирането на HTML елементи към HTML server контроли е възможен достъпа до техните атрибути от server-side код. Това конвертиране позволява контролите да инициират събития, които се обработват на сървъра.

HTML server контролите имитират HTML елементите синтактично, с разли­ката, че включват атрибута runat="server". За тях има изискване да са вложени в контейнер <form "runat="server">...form>. Намират се в пространството от имена System.Web.UI.HtmlControls.

HTML сървърни контроли – пример


Ще направим уеб приложение, в което ще има проста HTML страница. След това стъпка по стъпка от нея ще създадем уеб форма с HTML кон­троли в нея. За база ще използваме HTML таговете от първоначалната страница. Нека имаме следния код в HTML страницата:

DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >





Test HTML page





Username:





Password:















Това е обикновена HTML форма за потребителско име и парола.

Първото изискване, за да направим тази HTML страница уеб форма, е да добавим runat="server" в HTML таговете за въвеждане на данни (<input type="text" …>), както и на обграждащата ги HTML форма (<form …>).

Това е достатъчно, за да компилираме страницата като ASP.NET форма.

Ако искаме да добавяме код директно в страницата, а не в code-behind клас трябва да добавим директивата <%@Page ... %> като минимум укажем програмния език, който ще използваме (C#, Visual Basic.NET, Jscript.NET …).

Ако искаме да достъпваме контролите (<input type="text" runat="server" …>) от code-behind класа, трябва да им добавим и име, с което да бъдат достъпвани id="UsernameTextbox". Променлива със също­то име трябва да бъде налична и в code-behind страницата.

След всички тези промени ето как изглежда нашата нова ASP.NET стра­ница:



<%@ Page language="C#" AutoEventWireup="false" %>

DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >






Test ASP.NET Page





Username:



Password:











Когато компилираме и стартираме новата ни уеб форма, тя изглежда и работи така, както очакваме:

Кодът на HTML страницата не се е променил, докато ето какво получаваме като отворим сорс кода на уеб формата в браузъра (View  Source в Internet Explorer):



Кодът на уеб формата е близък до този на HTML страницата, когато формата е компилирана.


Уеб сървърни контроли (Web server controls)


Web server контролите са сървърни контроли, създадени специално за ASP.NET. Те включват не само form-type контроли като бутони и текстови кутии, но също контроли със специално предназначение като календар контролата (виж фигурата по-долу). Web server контролите са по-абстрактни от HTML server контролите. Техният обектен модел не е задъл­жително да наподобява синтаксиса на HTML.

Характеристики на уеб сървърните контроли


Web server контролите се базират на общ модел и всички споделят общи характеристики: тага <asp:ControlType...> и атрибута id. Web server контролите няма да функционират без атрибута runat="server". Web server контролите се намират в пространството от имена System.Web. UI.WebControls и могат да се използват във всяка уеб форма.






Кои контроли да ползваме?


Когато се създават ASP.NET страници, има възможност да се използват HTML server контроли или Web server контроли. Могат да се смесват безпрепятствено. Например - за бързо преправяне на HTML страница в ASP.NET страница.

Използването на Web server контролите е препоръчително пред HTML server контролите, тъй като те имат повече възможности и по-богат обектен модел.



Използвайте HTML сървърни контроли, ако:

  • Предпочитате HTML-подобен обектен модел. HTML server контролите имат почти същия синтаксис като HTML елементите. HTML server контролите имат server-side функционалност също като Web server контролите.

  • Работите със съществуващи HTML страници и искате бързо да им добавите функционалността на уеб формите. Заради това, че HTML server контролите съответстват точно на HTML елементите, не е нужно да подменяте контроли и да рискувате да се появят грешки при форматирането на страницата заради подмяната.

  • Контролите трябва да изпълняват едновременно client-side и server-side скрипт. Можете да пишете client-side скрипт и да посочвате контролите с HTML името им (<tag name="html_name">), защото при клиента те са HTML елементи. В същото време можете да пишете server-side код, защото те са server контроли.

  • Скоростта на връзката (bandwidth) е ограничена и трябва да обработвате голяма част от данните при клиента, за да намалите натовареността.

Използвайте Web server контроли, ако:

  • Предпочитате компонентния модел на .NET. Ще имате възможността да използвате обектно-ориентирано програмиране, ще можете да идентифицирате контролите по техния id атрибут и лесно да разде­ляте логиката от потребителския интерфейс. С Web server контроли­те ще можете да създавате приложения с вложени контроли и да управлявате събитията (events) на ниво контейнер на контроли (container level events).

  • Създавате уеб страници, които ще бъдат разглеждани на различни браузъри. Контролите има способността да генерират HTML, който е съобразен с възможностите на клиентския браузър и се възползва от всички негови предимства. Така можете да пишете за последните версии на браузърите, без да се притеснявате, че по-старите версии няма да могат да работят с пълната функционалност на страницата ви.

  • Имате нужда от специфична функционалност като например кален­дар или банери, която е имплементирана само в Web server контро­ли. В Интернет има огромно разнообразие от Web server контроли, които решават специфичен проблем.

  • Скоростта на връзката (bandwidth) ви не е твърде ограничена и увеличен брой връщания до сървъра (цикли от заявка-отговор) от клиента няма да създадат проблеми със скоростта.

Категории уеб сървърни контроли


Web сървър контролите се делят на:

  • Вътрешните контроли (Intrinsic controls) съответстват на прости HTML елементи като бутони или списъци. Използват се по същия начин като HTML server контролите.

  • Контролите за валидация (Validation controls) включват логика, която позволява валидация на потребителски въведени данни по унифициран начин. Контролата за валидация трябва да се прикрепи към контрола, приемаща потребителски вход и да се опишат прави­лата за валиден вход.

  • Обогатените контроли (Rich controls) включват по-сложни функции. Пример е AdRotator контролата, която се използва за показване на последователност от картинки (използва се за банери) или Calendar контролата, която представлява календар.

  • List-bound контролите могат динамично да показват данни на ASP.NET уеб страница. Дават възможността за показване, формати­ране на изхода, сортиране и промяна.

  • Internet Explorer уеб контролите са група сложни контроли, например MultiPage, TabStrip, Toolbar, and TreeView контролите, които могат да бъдат свалени от Интернет и да се интегрират във Visual Studio .NET за използване във всяко ASP.NET уеб приложение. Тези контроли могат да бъдат изобразени като стандартен HTML, но могат да се възползват и от допълнителните възможности на Internet Explorer 5.5 или следващи версии, при което имат по-богата функ­ционалност.

Вътрешни контроли и съответствие с HTML


Вътрешните (intrinsic) Web server контроли отговарят на прости HTML елементи. Някои от често използваните вътрешни Web server контроли са показани в таблицата:

Вътрешни уеб контроли

HTML тагове


















































Контроли за валидация


Контролите за валидация са скрити контроли, които проверяват данните, въведени от потребителя, срещу предефинирани правила. Ще изброим набързо някои от често използваните контроли за валидация

  • RequiredFieldValidator – изисква входът да е стойност, различна от празната (т.е. да се въведени някакви данни).

  • CompareValidator – проверява дали стойността на контролата е равна, по-голяма или по-малка от друга.

  • RangeValidator – изисква входът да е в някакви граници (обхват).

  • RegularExpressionValidator – изисква входът да отговаря на предефиниран регулярен израз (например пощенски код, телефонен номер …).

  • CustomValidator – позволява задаването на произволно условие, което може да се дефинира и изпълни и на клиента и на сървъра (например условие за просто число).

  • ValidationSummary – събирателна контрола, която може да извежда съобщенията за грешка на всички контроли за валидация.

Обогатените контроли (Rich controls)


Обогатените контроли (Rich controls) са специфични контроли, които решават сложна, но често срещана задача. Техни представители са:

  • AdRotator – показва последователност (предефинирана или случай­но генерирана) от изображения. Най-често се използва за банери.

  • Calendar – показва графично представяне на интерактивен кален­дар.

Списъчни контроли (List-bound controls)


List-bound контролите могат да показват данни от източник (най-често бази от данни). Някои от най-често използваните са описани по-долу:

  • CheckBoxList – показва данните като колона от check boxes.

  • DropDownList – показва данни като падащ списък.

  • Listbox – показва списък от елементи в кутийка.

  • RadioButtonList – показва данните като колона от бутони за алтернативен избор (radio buttons).

  • Repeater – показва информация (от DataSet или масив), като повтаря потребителски дефиниран шаблон. Шаблонът описва как се представя всеки един елемент. В този шаблон най-често има други контроли.

  • DataList – подобна на контролата Repeater, но с повече формати­ращи и layout опции, включително и възможността данните да се показват в таблица. DataList контролата също позволява да се определи и поведение при редактиране на данните.

  • DataGrid – показва данните в табличен вид. Доставя механизми за редактиране, сортиране и страниране.



Сподели с приятели:
1   ...   25   26   27   28   29   30   31   32   33




©obuch.info 2024
отнасят до администрацията

    Начална страница