Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Пользовательские элементы. Создание пользовательских элементов управления. Использование элементов управления



Иногда может потребоваться функциональная возможность в элементе управления, не предоставляемая встроенными серверными веб-элементами управления 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г. &copy; Все права защищены</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/>





Дата публикования: 2015-02-03; Прочитано: 855 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.009 с)...