Поделиться через


Шаблоны серверных веб-элементов управления ASP.NET

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

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

Шаблон — это набор элементов HTML и элементов управления, формирующий макет определенной части элемента управления. Например, в серверном веб-элементе управления DataList можно использовать комбинацию элементов HTML и элементов управления для определения макета каждой строки списка. Аналогично, серверный веб-элемент управления GridView имеет определенный по умолчанию вид строк сетки. Тем не менее, вид сетки может настраиваться путем определения шаблонов для отдельных столбцов.

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

Шаблоны отличаются от стилей. Шаблон определяет содержимое раздела элемента управления — например, содержимое строки в элементе управления DataList. Стили определяют внешний вид элемент — например, цвет, шрифт и т. д. Стили могут применяться к элементам управления в целом (например, для установки шрифта в элементе управления GridView) или к элементам шаблонов.

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

Элементы управления, поддерживающие шаблоны

Не все серверные веб-элементы управления поддерживают шаблоны. В большинстве случаев шаблоны поддерживаются сложными элементами управления. К таким элементам управления относятся GridView, DataList, Repeater, FormView, DetailsView, Login и другие элементы управления.

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

В следующей таблице представлены серверные веб-элементы управления, поддерживающие шаблоны.

Элемент управления

Шаблоны

ChangePassword

  • ChangePasswordTemplate

  • SuccessTemplate

CompleteWizardStep

  • ContentTemplate

  • CustomNavigationTemplate

CreateUserWizard

  • HeaderTemplate

  • SideBarTemplate

  • StartNavigationTemplate

  • StepNavigation

  • FinishNavigation

CreateUserWizardStep

  • ContentTemplate

  • CustomNavigationTemplate

DataList

  • HeaderTemplate

  • FooterTemplate

  • ItemTemplate

  • AlternatingItemTemplate

  • SeparatorTemplate

  • SelectedItemTemplate

  • EditItemTemplate

DetailsView

  • HeaderTemplate

  • FooterTemplate

  • PagerTemplate

  • EmptyDataTemplate

FormView

  • ItemTemplate

  • EditItemTemplate

  • InsertItemTemplate

  • HeaderTemplate

  • FooterTemplate

  • PagerTemplate

  • EmptyDataTemplate

GridView

  • PagerTemplate

  • EmptyDataTemplate

ListView

  • LayoutTemplate

  • ItemTemplate

  • ItemSeparatorTemplate

  • GroupTemplate

  • GroupSeparatorTemplate

  • EmptyItemTemplate

  • EmptyDataTemplate

  • SelectedItemTemplate

  • AlternatingItemTemplate

  • EditItemTemplate

  • InsertItemTemplate

Login

  • LayoutTemplate

LoginView

  • AnonymousTemplate

  • LoggedInTemplate

Menu

  • DynamicTemplate

  • StaticTemplate

PasswordRecovery

  • QuestionTemplate

  • SuccessTemplate

  • UserNameTemplate

Repeater

  • HeaderTemplate

  • FooterTemplate

  • ItemTemplate

  • AlternatingItemTemplate

  • SeparatorTemplate

SiteMapPath

  • CurrentNodeTemplate

  • RootNodeTemplate

  • NodeTemplate

  • PathSeparatorTemplate

TemplatePagerField

  • PageTemplate

UpdatePanel

  • ContentTemplate

UpdateProgress

  • ProgressTemplate

Wizard

  • FinishNavigationTemplate

  • HeaderTemplate

  • StartNavigationTemplate

  • StepNavigationTemplate

  • SideBarTemplate

Создание шаблонов

Шаблоны могут создаваться непосредственно в файле ASPX. Шаблоны создаются как объявления XML. В следующем примере демонстрируется отображение списка имен, номеров телефонов и адресов электронной почты сотрудников с помощью шаблонов в серверном веб-элементе управления DataList. Макет сведений о сотрудниках определяется в шаблоне ItemTemplate с помощью элементов управления привязки данных.

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

При работе с визуальным конструктором, например Visual Studio 2005, создавать и изменять шаблоны можно с помощью визуальных инструментов. Дополнительные сведения см. в разделе Практическое руководство. Создание шаблонов серверных веб-элементов управления с помощью конструктора.

<asp:datalist id="DataList1" runat="server">
  <HeaderTemplate>
  Employee List
  </HeaderTemplate>
  <ItemTemplate>
    <asp:label id="Label1" runat="server" 
        Text='<%# DataBinder.Eval(Container, "DataItem.EmployeeName")%>'></asp:label>
    <asp:label id="Label2" runat="server" 
        Text='<%# DataBinder.Eval(Container, "DataItem.PhoneNumber")%>'></asp:label>
    <asp:Hyperlink id="Hyperlink1" runat="server" 
        Text='<%# DataBinder.Eval(Container, "DataItem.Email") %>'
        NavigateURL='<%# DataBinder.Eval(Container, "DataItem.Link") %>'>
    </asp:Hyperlink>
  </ItemTemplate>
</asp:datalist>
<asp:datalist id="DataList1" runat="server">
  <HeaderTemplate>
  Employee List
  </HeaderTemplate>
  <ItemTemplate>
    <asp:label id="Label1" runat="server" 
        Text='<%# DataBinder.Eval(Container, "DataItem.EmployeeName")%>'></asp:label>
    <asp:label id="Label2" runat="server" 
        Text='<%# DataBinder.Eval(Container, "DataItem.PhoneNumber")%>'></asp:label>
    <asp:Hyperlink id="Hyperlink1" runat="server" 
        Text='<%# DataBinder.Eval(Container, "DataItem.Email") %>'
        NavigateURL='<%# DataBinder.Eval(Container, "DataItem.Link") %>'>
    </asp:Hyperlink>
  </ItemTemplate>
</asp:datalist>

Работа с шаблонами

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

Вложенные шаблоны, как и вложенные главные файлы, не отображаются в режиме конструктора в Visual Web Developer и Visual Studio 2005. Тем не менее, в обозревателе вложение отрисовывается правильно.

См. также

Основные понятия

Серверные веб-элементы управления ASP.NET и стили CSS

Другие ресурсы

Доступ к данным с помощью ASP.NET