Упражнение 1 - Въведение в ASP.NET страниците.


ASP.NET фреймуъркът е мащабируем Common Language Runtime програмен модел, който може да се използва на сървъра, за да създавате динамични уеб страници. Предвиден е като логично продължение на ASP (ASP.NET предвижда синтаксисна съвместимост със съществуващите страници), ASP.NET е специално предназначен да отговори на някои основни недостатъци в предишния модел. В частност, той дава възможност за създаване и многократно използване интерфейсни контроли, които съдържат обща функционалност и по този начин да намали размера на код, който разработчика трябва да пише, възможността разработчици да структурират логиката на страниците по-подредено (не "спагети код"), както и възможността за използване на инструменти за разработка за WYSIWYG дизайн.


Съдържание:

Моята първа страница на ASP.NET

ASP.NET страници са текстови файлове с разширение .aspx на името. Страниците се състоят от код и маркировка, компилират се динамично и се изпълняват на сървъра за да отговарят на заявката на потребителския браузър (или устройство).

Една ASP.NET страница може да бъде създадена просто като съществуващ HTML файл се преименува с разширение .aspx (не е необходима модификация на кода). Например, следващият пример демонстрира проста HTML страница която приема потребителско име референция за категория и след това извършва postback към оригиналната страница когато е натиснат бутона:


Пример: Intro1.aspx
Run Sample View Source

Важно: Имайте предвид, че все още при натискането на Lookup бутона не се случва нищо. Това е така защото .aspx файла съдържа само статичен HTML (няма динамично съдържание). Следователно същия HTML се изпраща обратно до клиента при всяко посещение на страницата, което се изразява в липсата на съдържанието на полетата (text box и drop-down list) между заявките.


Добавяне на код към страница

ASP.NET осигурява съвместимост на синтаксиса на съществуващите ASP страници. Това включва <% %> кодови блокове, които могат да бъдат смесвани с HTML съдържание в .aspx файл. Тези блокове се изпълняват от горе на долу при зареждане на страницата.

Следващия пример показва как <% %> блокове могат да се използват за цикли в HTML блок (увеличаване на големината на шрифта всеки път):


Пример: Intro2.aspx
Run Sample View Source

Важно: За разлика от ASP, кода използван в горните <% %> блокове практически е компилиран а не интерпретиран с помощта на скриптовата машина. Това подобрява ефективността на изпълнение.

ASP.NET разработчици могат са използват <% %> блокове код за да променят динамично HTML изхода колкото и сега могат с ASP. Например, следващият пример демонстрира как <% %> блокове могат да бъдат използвани за интерпретиране на резултати върнати от клиента.


Пример: Intro3.aspx
Run Sample View Source

Важно: Докато <% %> блокове предоставят мощен начин за произволно манипулиране на текстовия изход връщан от една ASP.NET страница, те не могат да дадат ясен HTML програмен модел. Както показва горния пример,разработчиците използващи само <% %> блокове код трябва да управляват състоянието на страницата между различните посещения и индивидуално да интерпретират получените стойности.


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

В допълнение към кода и маркировките, ASP.NET страниците могат да съдържат сървърни контроли, които са програмируеми сървърни обекти, които обикновено представляват елемент от интерфейса на страницата, като поле за текст или изображението. Сървърните контроли участват в изпълнението на страницата и да създават свои собствени маркировки зареждащи се при клиента. Основното предимство на сървърните контроли е, че те позволяват на разработчиците да правят сложен вид и поведение от прости изграждащи компоненти, драстично намалявайки размера на кода, необходим за създаването на динамична уеб страница. Друго предимство на сървърните контроли е, че е лесно да се персонализира вида и поведението им. Сървърните контроли използват свойства, които могат да бъдат определени както като декларативно (в етикета) или програмно (в кода). Сървърните контроли (и самата страница) също работят със събития, които разработчиците могат да прихващат за да изпълняват конкретни действия по време на изпълнение страница или в отговор на клиентско действие, което поства страница обратно към сървъра ("postback"). Сървърните контроли също опростяват проблема за запазване на състоянието в циклите през сървъра, автоматично запазвайки техните стойности при последователни postbacks.

Сървърните контроли се декларират в рамките на .aspx файла с помощта на специални тагове или типични HTML тагове, включващи runat="server" стойност на атрибут. Типичните HTML тагове се управляват от един от контролите в System.Web.UI.HtmlControls пространство. На всеки таг, който не се свързва с някой от контролите, се приема като тип System.Web.UI.HtmlControls.HtmlGenericControl.

Следващият пример използва четири сървърни контроли: <form runat=server>, <asp:textbox runat=server>, <asp:dropdownlist runat=server> и <asp:button runat=server>. При изпълнение тези сървърни контроли автоматично генерират HTML съдържание.


Пример: Intro4.aspx
Run Sample View Source

Важно: Тези контроли автоматично запомнят въведените от клиента данни между различните презареждания на страницата. Това състояние не се запаметява на сървъра (вместо това то се запомня в <input type="hidden"> скрито поле). Също така не си иска скрипт при клиента.

В допълнение към стандартните HTML входни контроли, ASP.NET дава възможност на разработчиците да използват по-богати и не стандартни контроли на техните страници. Например, следващото показва как <asp:adrotator> контролът може да бъде използван за динамична смяна на реклами на страница.


Пример: Intro5.aspx
Run Sample View Source

Прихващане на събития от сървърни контроли

Всеки ASP.NET сървърен контрол има възможността да представи обектен модел състоящ се от свойства, методи и събития. ASP.NET разработчиците могат да използват тези обектни модели за лесна модификация и взаимодействие със страниците.

Следващия пример показва как може да бъде прихванато OnClick събитие от <asp:button runat=server> контрол и да промени Text свойството на <asp:label runat=server> контрол.


Пример: Intro6.aspx
Run Sample View Source

Този прост пример е еквивалент на примера "Intro3" по-нагоре.


Работа със сървърни контроли

ASP.NET сървърните контроли се разпознават по това, че съдържат свойството runat="server" в таговете си. Следващия пример декларира три <asp:label runat="server"> контроли и променя техните text и style свойства поотделно.


Пример: Controls1.aspx
Run Sample View Source

Манипулиране на сървърни контроли

Програмно може всеки отделен ASP.NET контрол да бъде идентифициран в рамките на една страница посредством неговия id атрибут. Тази id връзка може да се използва за програмно манипулиране на обектния модел на сървърния контрол по време на изпълнение. Например, следващия пример показва как текстовото поле на <asp:label runat="server"> контрол се променя при Page_Load събитие.


Пример: Controls2.aspx
Run Sample View Source

Прихващане на събития на контроли

ASP.NET сървърните контроли могат по избор да създават и възбуждат сървърни събития, които могат да бъдат прихванати по подходящ начин. Това може да бъде постигнато чрез декларативно връзване на събитие с контрол (където името на атрибута на контрола показва събитието, а стойността на атрибута методът, който да се извика). Следващият пример демонстрира как се свързва OnClick събитие с контрол-бутон.


Пример: Controls3.aspx
Run Sample View Source

Code Behind vs. Code Inline

ASP.NET предоставя два начина за организиране на кода във вашите страници.


Отделяне на Inline кода

Долният пример показва проста ASP.NET страница с три сървърни контроли: TextBox, Button и Label. Първоначално тези контроли се зареждат като техните HTML еквиваленти. Когато се въведе текст в текстовото поле и се натисне бутона, страницата извършва postback към сървъра събитието за натискане се прихваща, като динамично се променя Text свойството на Label контрола. Страницата се презарежда за да се види променения текст. Този пример демонстрира основни механизми на модела на сървърните контроли, който прави ASP.NET един от най-лесните за учене и работа модели за уеб програмиране.


Пример: Inline код
Run Sample View Source

В предходния пример манипулатор на събитията за бутона се намира между <script></script> тагове в същата страница, съдържаща контролите. ASP.NET нарича този тип програмиране code-inline и той е много полезен, когато искате да запазите кода и логиката на представяне в един единствен файл. Въпреки това ASP.NET също поддържа друг начин, наречен code-behind модел. Когато се използва code-behind, кодът за обработката на събития се намира в един физически отделен файл от страницата, която съдържа сървърни контроли и маркировка. Това ясно разграничаване между кода и съдържанието е полезно, когато трябва да се поддържат поотделно, както когато в създаването на приложението участва едно лице. Code-behind моделът е много подходящ за групови проекти, където отделните хора работят по различни части от проекта.




Върни се в началото

Designed by инж. Антония Ташева