Реферат: Пользовательские элементы. Создание пользовательских элементов управления. Использование элементов управления
Иногда может потребоваться функциональная возможность в элементе управления, не предоставляемая встроенными серверными веб-элементами управления ASP.NET. В таких случаях можно создавать собственные элементы управления.
Пользовательские элементы управления — это контейнеры, в которые можно поместить разметку и серверные веб-элементы управления. Пользовательский элемент управления затем можно рассматривать как единое целое и задавать для него свойства и методы.
Пользовательский элемент управления представляет собой небольшую часть страницы, которая может содержать статический HTML-код и стандартные элементы управления. В пользовательских элементах управления можно предусмотреть свои свойства, методы и события. Пользовательские блоки кода могут многократно использоваться на разных страницах, но только одного сайта. Для применения в другом сайте его либо нужно скопировать в этот сайт, либо создавать библиотечные специальные серверные элементы наподобие стандартных ( custom server control ).
Файл пользовательского элемента управления может содержать то же самое, что и файл обычной исполнимой страницы, включая файл поддержки .cs, статический HTML-код, стандартные элементы управления. Они получают те же самые события, что и объект Page, имеют доступ к таким важным объектам-свойствам, как Application, Session, Request, Response. Но есть и существенные отличия:
В отличие от страниц, файлы которых имеют расширение .aspx, пользовательские элементы управления должны храниться в файлах с расширением .ascx.
Объект страницы произведен от класса Page, а объект пользовательского элемента управления производится от класса UserControl. Но учитывая, что оба класса ( Page и UserConrol ) наследуют класс TemplateControl, они приобретают много одинаковых свойств и событий от этого класса.
Среда исполнения не может напрямую вызвать файл .ascx, а должна это делать через .aspx, в который внедряется ссылка на файл .ascx
Файл пользовательского элемента управления не является отдельной страницей, поэтому не должен содержать дескрипторы <html>, <head>, <body>, <form>
Вместо директивы @Page файл пользовательского элемента управления содержит директиву @Control
Создание пользовательских элементов управления
Заготовку пользовательского элемента управления легко создает мастер среды проектирования. Необходимо выполнить команду Website/Add New Item и выбрать шаблон Web User Control.
Мастер создаст файл .ascx, который содержит только одну строку директивы
<%@ Control Language=«C#» AutoEventWireup=«true» CodeFile=«Header.ascx.cs» Inherits=«Header» %>
Пользовательский элемент управления редактируется в оболочке точно также, как и обычная страница. Файл поддержки .ascx.cs содержит тот же код, что и для обычной страницы.
Использование элементов управления
Пример создания пользовательского элемента управления, который будет представлять собой простой верхний колонтитул страницы и состоять из статического HTML-текста.
Код:
<%@ Control Language=«C#» AutoEventWireup=«true» CodeFile=«Header.ascx.cs» Inherits=«Header» %>
<table width=«100%» border=«0» bgcolor=«blue»>
<tr>
<td>
<font face=«Vernada, Arial» size=«6» color=«yellow»>
<b>Тестовая страница User Control</b>
</font> </td>
</tr>
<tr>
<td align=«right»>
<font size=«3» color=«white»>
<b>Время создания: март 2007г. © Все права защищены</b>
</font> </td>
</tr>
</table>
Преобразование страниц веб-форм в пользовательские элементы управления ASP.NET
Для преобразования однофайловой веб-страницы ASP.NET в пользовательский элемент управления необходимо:
Переименовать элемент управления таким образом, чтобы файл получил расширение ASCX.
Удалить из страницы элементы html, body и form.
Изменить директиву @ Page на директиву @ Control.
Удалить все атрибуты директивы @ Control, кроме Language, AutoEventWireup (если есть), CodeFile и Inherits.
Включить в директиву @ Control атрибут className. Это позволит обеспечить строгую типизацию пользовательского элемента управления при его добавлении на страницу.
Пример преобразования однофайловой веб-страницы ASP в пользовательский элемент управления.
Странца aspx:
<%@ Page Language=«C#» %>
<html>
<script runat=server>
void EnterBtn_Click(Object sender, EventArgs e)
{
Label1.Text = «Hi » + Name.Text + " welcome to ASP.NET!";
}
</script>
<body>
<h3> <u>Web Forms Page</u> </h3>
<form>
Enter Name: <asp:textbox id=«Name» runat=server/>
<asp:button Text=«Enter» OnClick=«EnterBtn_Click»
runat=server/>
<br>
<br>
<asp:label id=«Label1» runat=server/>
</form>
</body>
</html>
Пользовательский элемент управления(ascx):
<%@ Control Language=«C#» ClassName=«SampleUserControl» %>
<h3> <u>User Control</u> </h3>
<script runat=server>
void EnterBtn_Click(Object Sender, EventArgs e)
{
Label1.Text = «Hi » + Name.Text + " welcome to ASP.NET!";
}
</script>
Enter Name: <asp:textbox id=«Name» runat=server/>
<asp:button Text=«Enter» OnClick=«EnterBtn_Click»
runat=server/>
<br>
<br>
<asp:label id=«Label1» runat=server/>