Създаване на страница - Страница 10
Написано на 27 декември 2006 г. Публикувано в ASP.NET
СЪДЪРЖАНИЕ
Създаване на страница
Използването на шаблони за дизайн налага свои собствени изисквания към страниците. Тъй като шаблонът съдържа контроли ContentPlaceHolder, страницата трябва да съдържа контроли за съдържание, които съдържат кода за маркиране и други контроли, които ще бъдат показани на получената страница. Страницата не трябва да има сървърни контроли или код за маркиране извън контролите за съдържание.
Точно както при шаблон, логическият код на страницата се генерира по обичайния начин. Единствената разлика е, че страницата няма свои собствени обекти като HeadControl, така че трябва да използвате препратка към шаблонната страница чрез свойството Master.
За да свържете страница към шаблон, използвайте атрибута MasterPageFile на директивата Page. Ако е необходимо да се обвърже един и същ шаблон към всички страници в директорията, тогава няма нужда да се указва атрибутът MasterPageFile за всяка страница, достатъчно е да се зададе основният шаблон във файла web.config.
В допълнение, ASP.NET ви позволява да настроите кожата програмно. Както бе споменато по-горе, зареждането и свързването към шаблона за дизайн се извършва по време на подготовката на страницата за инициализация. Следователно, ако трябва да промените шаблона за дизайн на страницата, трябва да направите това в манипулатора на събития PreInit.
Обработка на ASP.NET шаблони
При първия достъп до страница ASP.NET търси и компилира сборки за всички шаблони в директорията. Тази операция отнема известно време, в зависимост от броя на шаблонните страници в директорията, но се изпълнява само веднъж. Следователно, ако вдиректориите съдържат неизползвани шаблони, това не води до загуба на производителност по време на приложението, единственото неудобство е допълнителното време и компилирането на ненужни сборки за неизползвани страници.
След това страницата преминава през всички стъпки, описани по-рано в тази статия, което води до генериране на HTML код, който се изпраща на клиента. В HTML кода, получен от браузъра, вече не е възможно да се определи коя част от кода е посочена в шаблона за дизайн и коя част от кода е дефинирана на самата страница, тъй като контролите ContentPlaceHolder и Content нямат никакви HTML съответствия и не генерират допълнителни тагове освен тяхното съдържание.
Тъй като шаблонът е подмножество на страница, е допустимо да се създават вложени шаблони, като се укаже за шаблона в директивата Master пътя до друг шаблон с помощта на атрибута MasterPageFile. За да направите това, трябва да дефинирате контролите ContentPlaceHolder в основния шаблон, а в "дъщерните" шаблони, заедно с елементите ContentPlaceHolder, да дефинирате контролите Content, за да замените съдържанието на елементите ContentPlaceHolder на основния шаблон.
Използване на различни шаблони за различни браузъри
Всеки уеб разработчик е наясно, че различните браузъри (напр. Microsoft Internet Explorer, Netscape Navigator, Mozilla FireFox и т.н.) обработват HTML кода по различен начин и, най-важното, имат малко по-различни модели на програмиране, което усложнява скриптовете от страна на клиента.