ASP.NET - 使用 ASP.NET Web 服务器控件(八)

 

八、ASP.NET Web 服务器控件模板

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

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

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

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

 

1、哪些控件支持模板?

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

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

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

控件

模板

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

 

2、创建模板

可以直接在 .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>

 

3、使用模板

模板控件仅根据需要创建其模板内容的实例。这意味着当发生页加载事件时,可能无法创建模板中控件的实例。此行为会影响模板内控件的使用方式;您不能假定加载页时已创建了模板内的控件实例。

嵌套模板和嵌套主文件不呈现在 Visual Web Developer Visual Studio 2005 的“设计”视图中。但嵌套正确呈现在 Web 浏览器上。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值