Элементы управления — это небольшие функциональные блоки в графическом пользовательском интерфейсе, которые включают текстовые поля, кнопки, флажки, списки, метки и многие другие инструменты. Используя эти инструменты, пользователи могут вводить данные, делать выбор и указывать свои предпочтения.
Элементы управления также используются для структурной работы, такой как проверка, доступ к данным, безопасность, создание главных страниц и манипулирование данными.
ASP.NET использует пять типов веб-элементов управления, а именно:
HTML-элемент управления
Управление HTML-сервером
Серверные элементы управления ASP.NET
Управление сервером ASP.NET Ajax
Пользовательские элементы управления и пользовательские элементы управления
Серверные элементы управления ASP.NET — это основные элементы управления, используемые в ASP.NET. Эти элементы управления можно разделить на следующие категории:
Элементы управления проверкой — используются для проверки ввода пользователя и работы путем запуска сценариев на стороне клиента.
Управление источниками данных — предоставляет возможности привязки данных к различным источникам данных.
Элемент управления представлением данных . Этот элемент управления представляет собой различные списки и таблицы, которые могут отображать данные, связанные с источником данных.
Элементы управления персонализацией . Персонализируйте страницы на основе пользовательской информации в соответствии с предпочтениями пользователя.
Элементы управления входом и безопасностью — обеспечивает аутентификацию пользователя.
Главная страница — обеспечивает единообразный макет и интерфейс для всего приложения.
Элементы управления навигацией — помогите пользователям ориентироваться. Например, меню, древовидное представление и т. д.
Богатые функциональные элементы управления — реализация специальных функций. Например: элементы управления AdRotator, FileUpload и Calendar.
Основной синтаксис использования серверных элементов управления:
<asp:controlType ID ="ControlID" runat="server" Property1=value1 [Property2=value2] />
Кроме того, Visual Studio имеет следующие функции, помогающие создавать безошибочный код:
Перетащите элементы управления в представлении «Дизайн».
Возможности IntelliSense для отображения и функций автозаполнения.
Окно свойств для непосредственной установки значений свойств.
Серверные элементы управления ASP.NET с визуальными возможностями являются производными от класса WebControl и наследуют все свойства, события и методы этого класса.
Сам класс WebControl и другие серверные элементы управления, не имеющие визуальных возможностей, являются производными от класса System.Web.UI.Control. Например, элемент управления PlaceHolder или элемент управления XML.
Серверные элементы управления ASP.Net наследуют все свойства, события и методы классов WebControl и System.Web.UI.Control.
В следующей таблице показаны свойства, общие для всех серверных элементов управления:
свойство | описывать |
---|---|
Ключ доступа | Нажмите эту клавишу и клавишу Alt одновременно, чтобы переместить фокус на элемент управления. |
Атрибуты | Это набор произвольных свойств, не соответствующих свойствам элемента управления (используется только для рендеринга представления). |
НазадЦвет | Цвет фона. |
BindingContainer | Содержит элементы управления, привязанные к данным. |
Цвет границы | Цвет границы. |
BorderStyle | Пограничный стиль. |
Ширина границы | Ширина границы. |
ПричиныПроверка | Отображается при вызове проверки. |
ChildControlCreated | Указывает, установлены ли дочерние элементы управления серверного элемента управления. |
идентификатор клиента | Идентификатор элемента управления HTML-тега. |
Контекст | Объект HttpContext, связанный с серверным элементом управления. |
Элементы управления | Коллекция всех элементов управления внутри элемента управления. |
Стиль управления | Стили для элементов управления веб-сервера. |
CSSКласс | CSS-классы. |
DataItemContainer | Предоставляет ссылку на имя, если оно реализует IDataItemContainer. |
DataKeysContainer | Предоставляет ссылку на именователя, если он реализует IDataKeysControl. |
Режим дизайна | Указывает, используется ли элемент управления в интерфейсе разработки. |
ОтключенныйCssClass | Получает или задает класс CSS, который будет применяться к отображаемому элементу HTML, когда элемент управления отключен. |
Включено | Указывает, отключено ли управление. |
Включить Темирование | Указывает, применяется ли тема к элементу управления. |
Енаблевиевстате | Указывает, следует ли сохранять состояние просмотра элемента управления. |
События | Получает список обработчиков событий, представляющих элемент управления. |
Шрифт | Настройки шрифта. |
Передний цвет | Цвет переднего плана. |
Имеет атрибуты | Указывает, имеет ли элемент управления группы свойств. |
Хасчайлдвиевстате | Указывает, имеют ли дочерние элементы текущего серверного элемента управления какие-либо сохраненные настройки состояния просмотра. |
Высота | Высота в пикселях или процентах. |
ИДЕНТИФИКАТОР | Идентификатор элемента управления. |
IsChildControlStateCleared | Указывает, имеет ли элемент управления, содержащийся в этом элементе управления, состояние управления. |
IsEnabled | Получает значение, указывающее, включен ли элемент управления. |
Истракингвиевстате | Указывает, будет ли серверный элемент управления сохранять изменения в своем состоянии просмотра. |
Исвиевстатеенаблед | Указывает, включено ли состояние просмотра для этого элемента управления. |
Лоадвиевстатебиид | Указывает, участвует ли элемент управления в загрузке состояния представления по идентификатору, а не по индексу. |
Страница | Страница, содержащая элемент управления. |
Родитель | Функции родительского контроля. |
РендерингСовместимость | Указывает версию ASP.NET, с которой будет совместим отображаемый HTML. |
Сайт | Держатель, который удерживает текущий элемент управления при отображении интерфейса проектирования. |
SkinID | Получает или задает обложку, применяемую к элементу управления. |
Стиль | Получает коллекцию текстовых свойств, которые будут отображаться как свойства стиля на внешней метке серверного веб-элемента управления. |
ТабИндекс | Получает или задает индексную метку серверного веб-элемента управления. |
Ключ тега | Получает значение HtmlTextWriterTag, соответствующее этому серверному веб-элементу управления. |
Имя тега | Получает имя метки элемента управления. |
Шаблонконтроля | Шаблон, содержащий элемент управления. |
Каталог исходного кода шаблона | Получает виртуальный каталог страницы или элемента управления, содержащегося в этом элементе управления. |
Подсказка | Получает или задает текст, отображаемый при наведении указателя мыши на элемент управления веб-сервера. |
УникальныйID | Уникальный идентификатор. |
Вьюстате | Получает словарь информации о состоянии, позволяющий сохранять и восстанавливать состояние представления элемента управления сервером при нескольких запросах к одной и той же странице. |
ViewStateIgnoreCase | Указывает, является ли объект StateBag нечувствительным к регистру. |
Виевстатемоде | Получает или задает состояние просмотра этого элемента управления. |
Видимый | Указывает, виден ли серверный элемент управления. |
Ширина | Получает или задает ширину серверного веб-элемента управления. |
Методы серверного элемента управления представлены в следующей таблице:
метод | описывать |
---|---|
Аддаттрибутесторендер | Добавьте атрибуты и стили HTML, необходимые для отображения указанного HtmlTextWriterTag. |
Добавлен контроль | Вызывается после добавления дочернего элемента управления в коллекцию элементов управления объекта управления. |
Аддпарседсубобъект | Уведомляет серверный элемент управления о том, что элемент XML или HTML был проанализирован, и добавляет этот элемент в коллекцию элементов управления серверного элемента управления. |
Применитьстильлистскин | Применяет свойства стиля, определенные в таблице стилей страницы, к элементам управления. |
ClearCachedClientID | инфраструктура. Установите для кэшированного значения ClientID значение null. |
Клирчайлдконтролстате | Удаляет информацию о состоянии элемента управления для дочерних элементов управления серверного элемента управления. |
ClearChildState | Удаляет информацию о состоянии просмотра и состоянии управления для всех дочерних элементов управления сервером. |
Клирчайлдвиевстате | Удаляет информацию о состоянии просмотра для всех дочерних элементов управления серверного элемента управления. |
Создать дочерние элементы управления | Используется для создания дочерних элементов управления. |
CreateControlCollection | Создайте новую коллекцию элементов управления для хранения дочерних элементов управления. |
Креатеконтролстиле | Создает объект стиля, реализующий все свойства, связанные со стилем. |
привязка данных | Привяжите источник данных к серверному элементу управления и всем его дочерним элементам управления. |
DataBind (логическое значение) | Привяжите источник данных и параметры, которые вызывают событие DataBinding, к серверному элементу управления и всем его дочерним элементам управления. |
ДанныеBindChildren | Привяжите источник данных к дочернему элементу управления серверного элемента управления. |
Утилизировать | Позволяет серверному элементу управления выполнять операции окончательной очистки перед его освобождением из памяти. |
ОбеспечьтеChildControls | Определяет, содержит ли серверный элемент управления дочерние элементы управления. Если нет, создайте дочерний элемент управления. |
ОбеспечитьID | Создайте идентификатор для элемента управления, у которого его нет. |
Равно(Объект) | Определяет, равен ли указанный объект текущему объекту. |
Завершить | Позволяет объекту попытаться освободить ресурсы и выполнить другие операции очистки, прежде чем объект будет возвращен в корзину. |
FindControl (строка) | Ищет в текущем именованном контейнере серверные элементы управления с указанным параметром id. |
FindControl(String, Int32) | Ищет в текущем именованном контейнере серверные элементы управления с указанным параметром id и целым числом. |
Фокус | Установите фокус ввода для элемента управления. |
GetDesignModeState | Получает данные времени разработки элемента управления. |
GetType | Получите тип текущего экземпляра. |
GetUniqueIDRelativeTo | Возвращает префиксную часть свойства уникального идентификатора указанного элемента управления. |
Хасконтролс | Определяет, содержит ли серверный элемент управления дочерние элементы управления. |
HasEvents | Указывает, зарегистрировано ли событие элементом управления или другими дочерними элементами управления. |
IsLiteralContent | Определяет, содержит ли серверный элемент управления только текстовое содержимое. |
Лоадконтролстате | Восстановить информацию о состоянии управления. |
Лоадвиевстате | Восстановить информацию о состоянии просмотра. |
КартаПутьБезопасный | Получает физический путь, с которым сопоставлен абсолютный или относительный виртуальный путь. |
MemberwiseClone | Создает неглубокую копию текущего объекта. |
MergeStyle | Копирует все непустые элементы веб-элемента управления с указанным стилем, но не перезаписывает существующие элементы стиля элемента управления. |
OnBubbleEvent | Определяет, проходят ли события серверного элемента управления через иерархию серверного элемента управления пользовательского интерфейса страницы. |
Ондатабиндинг | Вызовите событие привязки данных. |
OnInit | Вызывает событие Init. |
При загрузке | Вызывает событие загрузки. |
ОнПререндер | Вызывает событие PreRender. |
При выгрузке | Вызовите событие удаления. |
Открыть файл | Получите поток, используемый для чтения файла. |
УдаленКонтроль | Вызывается после удаления дочернего элемента управления из коллекции элементов управления объекта управления. |
Оказывать | Отображает элемент управления указанному автору HTML. |
RenderBeginTag | Отображает открывающий тег HTML элемента управления указанному автору. |
РендерДети | Выводит содержимое дочерних элементов серверного элемента управления в предоставленный объект HtmlTextWriter для записи содержимого, отображаемого на клиенте. |
РендерСодержимое | Отображает содержимое элемента управления указанному автору. |
RenderControl(HtmlTextWriter) | Выводит содержимое серверного элемента управления в предоставленный объект HtmlTextWriter и сохраняет информацию отслеживания об элементе управления, если отслеживание включено. |
RenderEndTag | Отображает закрывающий HTML-тег элемента управления указанному автору. |
Разрешить адаптер | Получает адаптер элемента управления, отвечающий за отрисовку указанного элемента управления. |
Савеконтролстате | Сохраняет изменения состояния серверных элементов управления, произошедшие с момента отправки страницы обратно на сервер. |
Савевиевстате | Сохраняет любое состояние, измененное после вызова метода TrackViewState. |
Сетдизайнмодестате | Установите данные времени разработки для элемента управления. |
ТоСтрока | Возвращает строку, представляющую текущий объект. |
Треквиевстате | Заставляет элемент управления отслеживать изменения состояния представления, чтобы их можно было сохранить в свойстве ViewState объекта. |
Давайте рассмотрим конкретный серверный элемент управления — элемент управления древовидным представлением. Элементы управления древовидным представлением — это элементы управления навигацией. Другие элементы управления навигацией: элемент управления меню и элемент управления SiteMapPath.
Добавьте на страницу элемент управления древовидным представлением. Выберите «Редактировать узлы...» в задаче и отредактируйте каждый узел с помощью редактора узлов в виде дерева следующим образом:
После успешного создания узла в представлении дизайна появится следующее изображение:
Задача Автоформат... позволяет указать формат древовидного представления следующим образом:
Добавьте на страницу элемент управления меткой и текстовое поле и назовите их соответственно lblmessage и txtmessage.
Напишите несколько строк кода, чтобы гарантировать, что при выборе определенного узла элемент управления меткой отображает текст узла, а в текстовом поле отображаются все дочерние узлы под ним (если таковые имеются). Код фонового файла должен выглядеть следующим образом:
using System;using System.Collections;using System.Configuration;using System.Data;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Xml.Linq;namespace eventdemo { public partial class treeviewdemo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { txtmessage.Text = " "; } protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e) { txtmessage.Text = " "; lblmessage.Text = "Selected node changed to: " + TreeView1.SelectedNode.Text; TreeNodeCollection childnodes = TreeView1.SelectedNode.ChildNodes; if(childnodes != null) { txtmessage.Text = " "; foreach (TreeNode t in childnodes) { txtmessage.Text += t.Value; } } } }}
Запустите страницу, чтобы увидеть эффект, и вы сможете разворачивать и сворачивать узлы.