Книга: C# для профессионалов. Том II
Базовые специальные элементы управления
Базовые специальные элементы управления
Как можно предположить из результатов предыдущего раздела, образец элемента управления, создаваемый по умолчанию, является версией стандартного элемента управления <asp:Labels>
. Создаваемый в файле .cs
код проекта, WebCustomControl1.cs
, выглядит следующим образом:
namespace PCSCustomWebControls {
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
/// <summary>
/// Краткое описание WebCustomControl1
/// </summary>
[DefaultProperty("Text"),
ToolboxData("<{0}WebCustomControl1 runat=server></{0}:WebCustomControl1>")]
public class WebCustomControl1 : System.Web.UI.WebControls.WebControl {
private string text;
[Bindable(true), Category("Appearance"), DefaultValue(" ")]
public string Text {
get {
return text;
}
set {
text = value;
}
}
/// <summary>
/// Предоставить этот элемент управления указанному параметру вывода.
/// </summary>
/// <param name="output"> The HTML writer to write out to </param>
protected override void Render(HtmlTextWriter output) {
output.Write(Text);
}
}
}
Начальные инструкции using
для пространств имен вполне стандартны.
Здесь определен единственный класс WebCustomControl1
(отметим, как имя класса отображается прямо в элемент ASP.NET в простом примере, только что увиденном), который является производным из класса WebControl
, как обсуждалось ранее. Для этого класса предоставлены два атрибута: DefaultProperty
и ToolboxData
. Атрибут DefaultProperty
определяет, какое свойство будет использоваться по умолчанию для элемента управления в языках, которые поддерживают эту функциональность. Атрибут ToolboxData
точно определяет, какой код HTML будет добавлен к странице .aspx
, если этот элемент управления добавляется с помощью инструментальной панели Visual Studio (когда проект откомпилирован, можно добавить элемент управления в панель инструментов, конфигурируя панель инструментов для использования созданной сборки).
Класс содержит одно свойство: Text
. Это очень простое текстовое свойство, похожее на те, которые встречались раньше. Здесь необходимо отметить только три атрибута:
? Bindable
— показывает, может ли свойство быть связано с данными.
? Category
— задает, будет ли свойство выводиться на страницах свойств.
? DefaultValue
— значение по умолчанию для свойства.
Представление свойств в таком виде работает точно таким же образом, как и для специальных элементов управления, и определенно предпочтительно по отношению к представлению открытых полей.
Остальная часть класса состоит из метода Render()
. Это единственный самый важный метод для реализации при создании специальных элементов управления, так как в нем мы получаем доступ к потоку вывода для изображения содержимого элемента управления. Существует только два случая, когда этот метод не нужно реализовывать:
? Когда создается элемент управления, не имеющий визуального представления (обычно называемый компонентом).
? Когда создается производный элемент из существующего элемента управления и не требуется изменять характеристики его изображения.
Специальные элементы управления могут также предоставлять специальные методы, инициировать специальные события, и отвечать производным элементам управления (если они существуют). Ниже мы рассмотрим:
? Создание производных элементов управления
? Создание композитных элементов управления
? Создание более развитых элементов управления
Конечный пример будет элементом управления выбором, который разрешает пользователю голосовать за одну из нескольких возможностей, и выводить графически результаты голосования. Варианты выбора будут определяться с помощью вложенных элементов управления потомков способом, описанным ранее.
Создадим для начала простой производный элемент управления.
- Простой элемент управления пользователя
- Преобразование приложения предварительного заказа мероприятия в элемент управления пользователя
- Специальные элементы управления
- Конфигурация проекта специального элемента управления
- Базовые специальные элементы управления
- Производный элемент управления RainbowLabel
- Создание композитного специального элемента управления
- Глава 3 Элементы управления
- Элементы управления пользователя
- Основные "рычаги" управления производительностью
- Категорийный менеджмент. Курс управления ассортиментом в рознице
- 6.4. Рабочий лист Excel и его структурные элементы
- 1. Системы управления базами данных
- 1. Базовые типы данных
- 4.4. Логические элементы и синтез логических схем
- Базовые категории
- 4.7 Структурные элементы SAN
- 4.8 Методы управления Fibre Channel
- 7.9 Будущее управления хранилищами по версии ассоциации SNIA: стандарты SMI