Общие сведения о шаблонах полей платформы динамических данных ASP.NET

Visual Studio 2010

Обновлен: Ноябрь 2007

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

  • Возможности.

  • Базовые сведения.

  • Шаблоны полей по умолчанию.

  • Использование шаблонов полей.

  • Визуализация шаблонов полей.

  • Платформа динамических данных использует шаблоны полей для визуализации отдельных полей данных в модели данных.

  • Платформа динамических данных позволяет выполнять следующие действия.

    • Изменять шаблоны полей по умолчанию.

    • Создавать пользовательские шаблоны полей.

Платформа динамических данных поддерживает управляемые данными веб-приложения. В сравнении с доступом к данным посредством элементов управления источниками данных ASP.NET и существующими элементами управления данными, такими как GridView и ListView, платформа динамических данных может требовать значительно меньше кода. Например, таблица Products в базе данных "Northwind" имеет внешние ключи в таблицах Categories и Suppliers. Для отображения такой связи с помощью элемента управления GridView или ListView требуется понимание схемы базы данных и ручная настройка элементов управления и, возможно, составление кода.

Однако при чтении схемы базы данных платформа динамических данных может получить информацию о типах данных и внешних ключах. Платформа динамических данных содержит элементы управления данными ASP.NET, которые могут считывать схему базы данных и которые позволяют упростить доступ и управление данными. Чтобы заменить заданную по умолчанию визуализацию элементов управления GridView и DetailsView, нужно вручную добавить код визуализации на каждую страницу. Шаблоны полей представляют собой более простой способ глобального изменения заданной по умолчанию визуализации элементов управления GridView и DetailsView.

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

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

Сведения о создании расширенных элементов управления, считывающих схему базы данных, см. в разделе Придание динамической функциональности элементам управления ASP.NET с привязкой к данным.

Элементы управления платформы динамических данных, использующие шаблоны полей

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

Шаблоны полей по умолчанию представляют собой шаблоны полей, встроенные в веб-приложение на платформе динамических данных. К примерам шаблонов полей по умолчанию относятся следующие шаблоны полей.

ForeignKey.ascx — отображает поля, имеющие связь "многие к одному".

ForeignKey_Edit.ascx — используется для редактирования полей, имеющих связь "многие к одному".

DateTime.ascx — отображает тип данных DateTime в виде текста.

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

Дополнительные сведения о шаблонах полей по умолчанию см. в разделе Заданные по умолчанию шаблоны полей платформы динамических данных ASP.NET.

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

Платформа динамических данных позволяет настраивать шаблоны полей по умолчанию или создавать новые шаблоны полей. При настройке шаблона поля по умолчанию платформа динамических данных использует настроенные шаблоны полей по умолчанию.

Настройка отображения данных шаблонами полей по умолчанию

Шаблоны полей по умолчанию являются пользовательскими элементами управления ASP.NET, сопоставляемыми типам данных в модели данных. Эти элементы управления являются производными от класса FieldTemplateUserControl, обеспечивающего доступ к полям данных, столбцам базы данных и метаданным.

Можно модифицировать шаблоны полей по умолчанию, чтобы изменить способ визуализации данных элементами управления данными. Например, можно изменить цвет фона и основной цвет текста, отображаемого в элементе управления данными, который использует шаблоны полей по умолчанию. Дополнительные сведения см. в разделе Практическое руководство. Настройка шаблонов полей по умолчанию платформы динамических данных ASP.NET.

Создание пользовательских шаблонов полей

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

Дополнительные сведения о создании пользовательского шаблона поля см. в разделе Практическое руководство. Настройка отображения полей данных в модели данных. Сведения об использовании свойства UIHint см. в разделе Практическое руководство. Настройка внешнего вида и поведения полей данных в элементе управления платформы динамических данных.

Платформа динамических данных обеспечивает визуализацию шаблонов полей по умолчанию и пользовательских шаблонов полей в режимах отображения, редактирования и вставки. Платформа динамических данных использует правила поиска, чтобы определить, какой шаблон поля следует отображать. Правило поиска, используемое платформой динамических данных зависит от режима элемента управления (отображение, редактирование или вставка). Например, если данные в столбце представляют собой логическое значение и элемент управления данными находится в режиме отображения, платформа динамических данных осуществляет визуализацию Boolean.ascx — шаблона поля по умолчанию, отображающего логические типы данных. Однако, если элемент управления данными находится в режиме редактирования, платформа динамических данных осуществляет визуализацию Boolean_Edit.ascx — шаблона поля, позволяющего редактировать логические типы данных. Если элемент управления данными находится в режиме вставки, платформа динамических данных осуществляет визуализацию Boolean_Insert.ascx — шаблона поля, позволяющего вставлять логические типы данных.

Если с полем данных в модели данных связан атрибут UIHint, т. е. если задан пользовательский шаблон поля, платформа динамических данных осуществляет поиск элемента управления на основе имени UIHint. Например, если в атрибуте UIHint задано значение MyTemplate, платформа динамических данных осуществляет поиск шаблона поля MyTemplate.ascx, MyTemplate_Edit.ascx (если элемент управления находится в режиме редактирования) или MyTemplate_Insert.ascx (если элемент управления находится в режиме вставки). Если такие элементы управления не найдены, платформа динамических данных использует шаблоны полей по умолчанию.

Правила поиска

Платформа динамических данных начинает поиск с определения режима шаблонов полей. Для каждого режима платформа динамических данных применяет набор правил поиска.

Поиск в режиме отображения

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

  1. Если существуют метаданные атрибута UIHint (т. е. если существует пользовательский шаблон поля), платформа динамических данных осуществляет поиск элемента управления по имени пользовательского элемента управления и атрибуту DataTypeAttribute, определенным в свойствах UIHint и DataTypeAttribute. Платформа динамических данных не отображает все типы данных по умолчанию. Например, типы данных Byte[] (двоичный тип, отметка времени и графический тип) не отображаются по умолчанию. Дополнительные сведения о типах данных, по умолчанию отображаемых платформой динамических данных, см. в разделе Заданные по умолчанию шаблоны полей платформы динамических данных ASP.NET. Дополнительные сведения об отображении пользовательских типов данных см. в разделе DataTypeAttribute.

  2. Платформа динамических данных определяет тип данных в столбце базы данных и осуществляет поиск элемента управления исходя из типа данных. Имя типа определяется и используется в следующем порядке.

    1. Выполняется поиск имени полного типа данных, например System.Int32.

    2. Если имя полного типа не найдено, платформа динамических данных осуществляет поиск имени простого типа данных, например int32.

    3. Если имя простого типа данных не найдено, выполняется поиск особых случаев, определенных в таблице данных. Например, если простой тип данных, такой как Int32, не найден, платформа динамических данных осуществляет поиск типа Integer — особого случая, определенного в таблице данных. Если не найден простой тип данных String, выполняется поиск Text — особого случая, определенного для типа String.

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

    5. Если резервный тип данных не существует, платформа динамических данных не отображает данные.

  3. Если поле содержит внешний ключ, платформа динамических данных отображает ForeignKey.ascx — шаблон поля по умолчанию, используемый для связи "многие к одному", или Children.ascx — шаблон поля по умолчанию, используемый для связи "один ко многим".

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

Поиск в режиме редактирования

Правила поиска в режиме редактирования идентичны правилам для режима отображения с одном исключением. Если шаблон поля находится в режиме редактирования, платформа динамических данных осуществляет поиск шаблона поля "_Edit" (например, MyTemplate_Edit) и применяет правила; в противном случае используется режим отображения (только чтение).

Поиск в режиме вставки

Правила поиска в режиме редактирования идентичны правилам для режима отображения с одном исключением. Если шаблон поля находится в режиме вставки, платформа динамических данных осуществляет поиск шаблона поля "_Insert" (например, MyTemplate_Insert) и применяет правила; в противном случае выполняется поиск шаблона поля "_Edit".

Cc488523.alert_note(ru-ru,VS.100).gifПримечание.

Элементы управления "_Insert.ascx" не предоставляются по умолчанию.

Резервный тип данных

Тип данных

Decimal

Float, Double.

Int

Int16, byte, Long.

String

Char, Int, Decimal, GUID, DateTime, DateTimeOffset, TimeSpan.

Класс

Описание

FieldTemplateUserControl

Базовый класс для всех элементов управления FieldTemplateUser.

Показ: