Шаблоны серверных веб-элементов управления ASP.NET
Обновлен: Ноябрь 2007
Большинство серверных веб-элементов управления имеют заданные по умолчанию вид и структуру, которые можно изменить путем задания свойств или использования стилей. Некоторые серверные веб-элементы управления также позволяют настраивать их вид с помощью шаблонов.
Шаблон — это набор элементов HTML и элементов управления, формирующий макет определенной части элемента управления. Например, в серверном веб-элементе управления DataList можно использовать комбинацию элементов HTML и элементов управления для определения макета каждой строки списка. Аналогично, серверный веб-элемент управления GridView имеет определенный по умолчанию вид строк сетки. Тем не менее, вид сетки может настраиваться путем определения шаблонов для отдельных столбцов.
Примечание. |
---|
Шаблоны отличаются от стилей. Шаблон определяет содержимое раздела элемента управления — например, содержимое строки в элементе управления DataList. Стили определяют внешний вид элемент — например, цвет, шрифт и т. д. Стили могут применяться к элементам управления в целом (например, для установки шрифта в элементе управления GridView) или к элементам шаблонов. |
Шаблоны содержат элементы HTML и встроенные серверные элементы управления. При выполнении элемента управления на веб-странице ASP.NET инфраструктура элемента управления отрисовывает содержимое шаблона вместо элементов HTML, заданных для данного элемента управления по умолчанию.
Элементы управления, поддерживающие шаблоны
Не все серверные веб-элементы управления поддерживают шаблоны. В большинстве случаев шаблоны поддерживаются сложными элементами управления. К таким элементам управления относятся GridView, DataList, Repeater, FormView, DetailsView, Login и другие элементы управления.
Каждый элемент управления поддерживает слегка отличающийся от других набор шаблонов, определяющих макет таких частей элемента управления, как заголовок, нижний колонтитул, элемент и выделенный элемент. В зависимости от того, какие элементы необходимо настроить, можно указать шаблон для любого из этих элементов или для всех элементов сразу. В элементе управления GridView, можно указывать шаблоны для столбцов (а не для строк).
В следующей таблице представлены серверные веб-элементы управления, поддерживающие шаблоны.
Элемент управления |
Шаблоны |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Создание шаблонов
Шаблоны могут создаваться непосредственно в файле ASPX. Шаблоны создаются как объявления XML. В следующем примере демонстрируется отображение списка имен, номеров телефонов и адресов электронной почты сотрудников с помощью шаблонов в серверном веб-элементе управления DataList. Макет сведений о сотрудниках определяется в шаблоне ItemTemplate с помощью элементов управления привязки данных.
Примечание. |
---|
При работе с визуальным конструктором, например 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