Чтение онлайн

на главную - закладки

Жанры

C# для профессионалов. Том II

Ватсон Карли

Шрифт:

Элементы управления пользователя

Элементы управления пользователя создаются с помощью кода ASP.NET также, как создаются стандартные страницы Web ASP.NET. Различие состоит в том, что после создания элемента управления пользователя его можно повторно применять на множестве страниц ASP.NET с минимальными трудностями.

Например, предположим, что создана страница, которая выводит некоторую информацию из базы данных, возможно, информацию о заказе. Вместо создания фиксированной страницы, которая это делает, можно поместить соответствующий код в элемент управления пользователя и затем вставлять при желании этот элемент управления

в множество различных страниц Web.

Кроме того, можно определить свойства и методы для элементов управления пользователя. Например, определить фоновый цвет для вывода таблицы базы данных на странице Web или повторно выполнить запрос к базе данных для проверки изменений.

Давайте создадим простой элемент управления пользователя, обсуждая соответствующие вопросы по мере их появления, и затем скомпонуем его, чтобы увидеть, как можно добавлять методы и свойства.

Простой элемент управления пользователя

В VS.NET создадим новое приложение Web с именем

PCSUserCWebAppl
, открывая VS.NET, щелкнув на Getting Started, и выбирая затем New Project, щелкнув на пиктограмме Web Application. Должно открыться диалоговое окно, позволяющее сохранить этот проект.

Когда будут созданы стандартные файлы, выберем пункт меню Project|Add New Item… и добавим Web User Control с именем

PCSUserC1.ascx
, как показано ниже:

Добавленные к проекту файлы с расширениями

.ascx
и
.ascx.cs
работают очень похожим образом с файлами
.aspx
, с которыми мы уже знакомы. Файл
.ascx
будет содержать код ASP.NET и выглядеть очень похоже на обычный файл
.aspx
. Файл
.ascx.cs
является нашим кодом, который определяет элемент управления пользователя преимущественно так же, как в файлах
.aspx.cs
определяются формы.

Файлы

.ascx
можно просматривать в виде кода HTML или в окне построителя, как и файлы
.aspx
. Просмотр файла в виде кода HTML открывает важное различие: в элементе
<body>
отсутствует элемент <form>. Это связано с тем, что элементы управления пользователя будут вставляться внутрь форм ASP.NET в других файлах, и поэтому не нуждаются в собственном теге формы.

Просмотр созданных шаблонных файлов открывает еще одно важное отличие: созданный класс наследует из класса

System.Web.UI.UserControl
. Это также связано с тем, что элемент управления будет использоваться внутри формы.

Наш простой элемент управления будет выводить графическое изображение, соответствующее одной из четырех стандартных мастей колоды карт (трефы, бубны, черви, пики). Требуемые для этого графические изображения поставляются как часть Visual Studio; их можно найти в C:Program Files\Microsoft Visual Studio.NET\Common7\Graphics\bitmaps\assorted с именами файлов

CLUB.BMP
,
DIAMOND.BMP
,
HEART.BMP
и
SPADE.BMP
. Скопируйте их в каталог проекта, чтобы ими можно было воспользоваться. 

Добавим некоторый код к новому элементу управления. В файл

PCSUserC1.ascx
,
представленный в виде кода HTML, добавим следующие строки:

<HTML>

 <HEAD> </HEAD>

 <BODY>

<TABLE CellSpacing=4>

<TR vAlign=middle>

<TD>

<asp:Image Runat="server" ID="suitPic" ImageURL="club.bmp " />

</TD>

<TD height=20>

<asp:Label Runat="server" ID="suitLabel">Club</asp:Label>

</TD>

</TR>

</TABLE>

 </BODY>

</HTML>

Этот код определяет состояние по умолчанию элемента управления, которое будет изображением трефы с меткой. Прежде чем добавлять дополнительную функциональность, протестируем такое поведение по умолчанию, добавляя этот элемент управления в проект Web-страницы

WebForm1.aspx
.

Чтобы использовать специальный элемент управления в файле

.aspx
, сначала необходимо определить, как мы будем на него ссылаться, то есть, имя тега, который будет представлять элемент управления в коде HTML. Чтобы сделать это, используется директива
<%@ Register %>
в верхней части кода следующим образом:

<%@ Register TagPrefix="PCS" TagName="UserC1" Src="PCSUserC1.ascx" %>

Здесь используются атрибут

Src
для указания на файл, содержащий элемент управления пользователя, и атрибуты
TagPrefix
и
TagName
для определения имени тега для использования (в форме
TagPrefix: TagName
). Теперь мы можем использовать этот элемент управления, добавляя следующий элемент:

<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false"

 Inherits="PCSUserCWebApp1.WebForm1" %>

<%@ Register TagPrefix="PCS" TagName="UserC1" Src= "PCSUserC1.ascx" %>

<HTML>

 <HEAD>

<meta name=vs_targetSchema content="Internet Explorer 5.0">

<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">

<meta name="CODE_LANGUAGE" Content="C#" >

 </HEAD>

 <BODY MS_POSITIONING="GridLayout">

<form method="post" runat="server">

<PCS:UserC1 Runat="server" id="myUserControl" />

</form>

 </BODY>

</HTML>

Элементы управления пользователя могут не объявляться по умолчанию в базовом коде формы, поэтому может понадобиться добавить следующее объявление в

WebForm1.aspx.cs
:

Поделиться:
Популярные книги

Гардемарин Ее Величества. Инкарнация

Уленгов Юрий
1. Гардемарин ее величества
Фантастика:
городское фэнтези
попаданцы
альтернативная история
аниме
фантастика: прочее
5.00
рейтинг книги
Гардемарин Ее Величества. Инкарнация

Маленькая хозяйка большого герцогства

Вера Виктория
2. Герцогиня
Любовные романы:
любовно-фантастические романы
7.80
рейтинг книги
Маленькая хозяйка большого герцогства

Законы Рода. Том 10

Flow Ascold
10. Граф Берестьев
Фантастика:
юмористическая фантастика
аниме
фэнтези
5.00
рейтинг книги
Законы Рода. Том 10

Возмездие

Злобин Михаил
4. О чем молчат могилы
Фантастика:
фэнтези
7.47
рейтинг книги
Возмездие

Кровь эльфов

Сапковский Анджей
3. Ведьмак
Фантастика:
фэнтези
9.23
рейтинг книги
Кровь эльфов

Последний наследник

Тарс Элиан
11. Десять Принцев Российской Империи
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний наследник

Газлайтер. Том 4

Володин Григорий
4. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 4

Бастард

Осадчук Алексей Витальевич
1. Последняя жизнь
Фантастика:
фэнтези
героическая фантастика
попаданцы
5.86
рейтинг книги
Бастард

Князь

Шмаков Алексей Семенович
5. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
сказочная фантастика
5.00
рейтинг книги
Князь

Жестокая свадьба

Тоцка Тала
Любовные романы:
современные любовные романы
4.87
рейтинг книги
Жестокая свадьба

Идеальный мир для Лекаря 14

Сапфир Олег
14. Лекарь
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 14

Последняя Арена 11

Греков Сергей
11. Последняя Арена
Фантастика:
фэнтези
боевая фантастика
рпг
5.00
рейтинг книги
Последняя Арена 11

Болотник 3

Панченко Андрей Алексеевич
3. Болотник
Фантастика:
попаданцы
альтернативная история
6.25
рейтинг книги
Болотник 3

Черный Маг Императора 10

Герда Александр
10. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Черный Маг Императора 10