Field's Space

.NET技术学习

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

原文地址:http://msdn2.microsoft.com/zh-CN/library/h59db326.aspx

大多数 Web 服务器控件具有默认的布局和外观,但是您可以通过设置属性或使用样式来操纵它们。部分 Web 服务器控件还允许您使用模板来自定义其外观。

模板是一组 HTML 元素和控件,它们构成组件特定部分的布局。例如,在 DataList Web 服务器控件中,您可以使用 HTML 元素和控件的组合来创建列表中每行的布局。同样,GridView Web 服务器控件对网格中的每行都具有一个默认的外观。但您可以通过为各列定义不同的模板,来自定义网格的外观。

Note注意

模板不同于样式。模板定义控件某一部分的内容,如 DataList 控件中某行的内容。而样式指定元素的外观,如颜色、字体等。样式可以作为整体应用于控件(例如,设置 GridView 控件的字体)和模板项。

模板由 HTML 和嵌入的服务器控件组成。当控件在 ASP.NET 网页中运行时,控件框架呈现模板的内容,而不是控件的默认 HTML。

哪些控件支持模板?

并非所有 Web 服务器控件都支持模板。在大多数情况下,复杂的控件支持模板。这些控件包括 GridViewDataListRepeaterFormViewDetailsViewLogin 及其他控件。

每一控件支持的一组模板略有不同,这些模板指定控件的不同部分的布局,例如标题、脚注、项和所选项。您可以为上述任一或全部对象指定模板,具体情况取决于您要自定义哪一对象。在 GridView 控件中,您可以为列(而非行)指定模板。

下表概述了支持模板的 Web 服务器控件。

 
控件 模板

ChangePassword

  • ChangePasswordTemplate

  • SuccessTemplate

DataList

  • HeaderTemplate

  • FooterTemplate

  • ItemTemplate

  • AlternatingItemTemplate

  • SeparatorTemplate

  • SelectedItemTemplate

  • EditItemTemplate

DetailsView

  • HeaderTemplate

  • FooterTemplate

  • PagerTemplate

  • EmptyDataTemplate

FormView

  • ItemTemplate

  • EditItemTemplate

  • InsertItemTemplate

  • HeaderTemplate

  • FooterTemplate

  • PagerTemplate

  • EmptyDataTemplate

GridView

  • PagerTemplate

  • EmptyDataTemplate

Menu

  • DynamicTemplate

  • StaticTemplate

Repeater

  • HeaderTemplate

  • FooterTemplate

  • ItemTemplate

  • AlternatingItemTemplate

  • SeparatorTemplate

SiteMapPath

  • CurrentNodeTemplate

  • RootNodeTemplate

  • NodeTemplate

  • PathSeparatorTemplate

Wizard

  • FinishNavigationTemplate

  • HeaderTemplate

  • StartNavigationTemplate

  • StepNavigationTemplate

  • SideBarTemplate

创建模板

可以直接在 .aspx 文件中创建模板。模板创建为 XML 声明。下面的示例演示如何使用 DataList 控件中的模板来显示一个包含雇员姓名、电话号码和电子邮件地址的列表。在使用数据绑定控件的 ItemTemplate 中指定雇员信息的布局。

Note注意

如果您使用的是可视化设计器(如 Visual Studio 2005),则通常可以使用可视化工具创建和编辑模板。有关更多信息,请参见如何:使用设计器创建 Web 服务器控件模板

Visual Basic
<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>

请参见

posted on   Field  阅读(591)  评论(0)    收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示