母版页

来源:互联网 发布:一加软件商店 编辑:程序博客网 时间:2024/06/02 22:30


母版页(Master Pages)
过去,ASP.NET 没有能力为一个完整的站点应用一致的外观或观感。
ASP.NET 2.0 中的 Master Pages 解决了这个问题。
master page 是一套应用到其他页面的模版,带有共享的布局和功能性。master page 为内容页面定义了占位符。而结果页面是 master page 和内容页面的组合(合并)。
主题(Themes)
主题是另一项 ASP.NET 2.0 的特性。主题,或皮肤,允许开发者为 web 应用程序创建定制的外观。
ASP.NET 2.0 主题的设计目标:
•    使站点外观的定制变得容易
•    允许主题被应用到控件、页面以及整个站点
•    允许定制所有可见的元素
Web 部件(Web Parts)
ASP.NET 2.0 的 Web 部件能够为站点提供一致的外观,同时仍然允许用户定制样式和内容。
新控件:
•    Zone 控件 - 页面上内容一致的区域
•    Web part 控件 - 每个 zone 的内容区域
导航(Navigation)
ASP.NET 2.0 拥有内建的导航控件,比如:
•    Site Maps
•    Dynamic HTML menus
•    Tree Views
安全(Security)
对于保护机密以及个人的信息来说,安全性非常重要。
在 ASP.NET 2.0,已经添加了下面这些控件:
•    Login 控件,提供登录功能
•    LoginStatus 控件,控制登录状态
•    LoginName 控件,显示当前用户名
•    LoginView 控件,根据登录状态提供不同的视图
•    CreateUser wizard,进行用户帐户的创建
•    PasswordRecovery 控件,提供“忘记密码”功能
角色和个性化(Roles and Personalization)
因特网社区越来越流行。
ASP.NET 2.0 拥有可存储用户细节信息的个性化特性。该特性为自定义用户(以及用户组)的属性的提供了便捷的方法。
国际化(Internationalization)
当您拥有更庞大的受众时,通过不同的语言服务用户是很重要的。
ASP.NET 2.0 已经改进了对多语言的支持。
数据访问(Data Access)
许多网站都是靠数据驱动的,它们使用数据库或 XML 文件作为数据源。
在使用 ASP.NET 的过程中,相关代码,以及相同的的代码经常被重复使用在不同的网页中。
ASP.NET 2.0 的一个核心目标,就是简化了数据源的使用。
ASP.NET 2.0 拥有新的数据控件,无需太多编程以及深入的数据库连接方面的知识。
Mobility Support
移动设备的问题是屏幕的尺寸以及显示能力。
在 ASP.NET 中,微软的移动因特网套件 (Microsoft Mobile Internet Toolkit,MMIT) 提供了这方面的支持。
在 ASP.NET 2.0 中,不再需要 MMIT,因为所有的控件都内建了移动支持。
图像(Images)
ASP.NET 2.0 拥有用于处理图像的新控件:
•    ImageMap 控件 - 图像映射支持
•    DynamicImage 控件 - 对不同浏览器的图像支持
这些空间对移动设备上更优化的图像显示非常重要,比如手持电脑和移动电话。
自动编译(Automatic Compilation)
ASP.NET 2.0 提供了自动编译。所有同一目录中的文件会在首次运行时进行编译,包含对 WSDL 以及 XSD 文件的支持。
已编译的部署方式(安装)以及源代码保护
ASP.NET 2.0 同时提供了预编译(pre-compilation)。能够对整个站点进行预编译。这就提供了一种部署(上传到服务器)已编译应用程序的简易方法,同时由于只有已编译的文件能够进行部署,源代码也受到了保护。
站点管理(Site Management)
ASP.NET 2.0 有三种配置管理站点的新特性:
•    新的本地管理控制台
•    新的可编程管理功能 (API)
•    新的基于 web 的管理工具
母版页(Master Pages)为网站内的其他页面提供模版。
母版页(Master Pages)
Master Page 使您有能力为 web 应用程序中的所有页面(或页面组)创建一致的外观和行为。
Master Page 为其他页面提供了模版,带有共享的布局和功能。Master Page 为内容定义了可被内容页面覆盖的占位符。而输出结果就是 Master Page 和内容页面的组合。
内容页包含您希望显示的内容。
当用户请求内容页时,ASP.NET 会对页面进行合并以生成输出,输出结果对 Master Page 的布局和内容页面的内容进行了合并。
Master Page 实例:
<%@ Master %>

<html>
<body>
<h1>Standard Header For All Pages</h1>

<asp:ContentPlaceHolder id="CPH1" runat="server">
</asp:ContentPlaceHolder>

</body>
</html>
Master Page 是一张为其他页面设计的普通 HTML 模版页。
@ Master 指令把它定义为一个张 master page。
这个 master page 为单独的内容包含了一个占位符标签 <asp:ContentPlaceHolder>。
id="CPH1" 属性标识该占位符,在相同的 master page 中允许多个占位符。
该 master page 被保存为 "master1.master"。
注释:该 master page 也能够包含代码,允许动态的内容。
内容页实例:
<%@ Page MasterPageFile="master1.master" %>

<asp:Content ContentPlaceHolderId="CPH1" runat="server">

<h2>Individual Content</h2>
<p>Paragrap 1</p>
<p>Paragrap 2</p>

</asp:Content>
上面的内容页是独立的内容页面之一。
@ Page 指令把它定义为一张标准的内容页面。
该内容页面包含了一个内容标签<asp:Content>,该标签引用了母版页(ContentPlaceHolderId="CPH1")。
该内容页被保存为 "mypage1.aspx"。
当用户请求该页面时,ASP.NET 就会将母版页与内容页进行合并。
点击这里显示 mypage1.aspx。
注释:内容文本必须位于 <asp:Content> 标签内。该标签外的文本是不被允许的。
带有控件的内容页
<%@ Page MasterPageFile="master1.master" %>

<asp:Content ContentPlaceHolderId="CPH1" runat="server">

<h2>W3School</h2>
<form runat="server">
<asp:TextBox id="textbox1" runat="server" />
<asp:Button id="button1" runat="server" text="Button" />
</form>
</asp:Content>
上面的内容页演示了如何把 .NET 控件插入内容页,就像插入一个普通的页面中。
ASP.NET 2.0 拥有内建的导航控件。
网站导航
维护大型站点的导航菜单是很困难,也很费时的。
在 ASP.NET 2.0 中,菜单可存储在文件中,这样维护起来更加方便。这个文件通常名为 web.sitemap,被存放在网站的根目录中。
此外,ASP.NET 2.0 拥有三种新的导航控件:
•    Dynamic menus
•    TreeViews
•    Site Map Path
Sitemap 文件
本教程使用下面的 sitemap 文件:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<siteMap>
  <siteMapNode title="Home" url="/aspnet/w3home.aspx">
  <siteMapNode title="Services" url="/aspnet/w3services.aspx">
    <siteMapNode title="Training" url="/aspnet/w3training.aspx"/>
    <siteMapNode title="Support" url="/aspnet/w3support.aspx"/>
  </siteMapNode>
  </siteMapNode>
</siteMap>
创建 sitemap 文件的规则:
•    XML 文件必须包含围绕内容的 <siteMap> 标签
•    <siteMap> 标签只能有一个 <siteMapNode> 子节点 ("home" page)
•    每个 <siteMapNode> 可以有多个子节点 (web pages)
•    每个 <siteMapNode> 拥有定义页面标题和 URL 的属性
注释:sitemap 文件必须存放在站点的根目录中,URL 属性必须相对于该根目录。
Dynamic Menu
<asp:Menu> 控件可显示标准的站点导航菜单。
代码实例:
<asp:SiteMapDataSource id="nav1" runat="server" />

<form runat="server">
<asp:Menu runat="server" DataSourceId="nav1" />
</form>
在上面的例子中的 <asp:Menu> 控件是一个供服务器创建导航菜单的占位符。
控件的数据源由 DataSourceId 属性进行定义。id="nav1" 把它连接到 <asp:SiteMapDataSource> 控件。
<asp:SiteMapDataSource> 控件会自动连接默认的 sitemap 文件(web.sitemap)。
点击此处查看 Menu、TreeView 以及 SiteMapPath 的 DEMO。
TreeView
<asp:TreeView> 控件可显示多级导航菜单。
这种菜单看上去像一棵带有枝叶的树,可通过 + 或 - 符号来打开或关闭。
代码实例:
<asp:SiteMapDataSource id="nav1" runat="server" />

<form runat="server">
<asp:TreeView runat="server" DataSourceId="nav1" />
</form>
上面例子中的 <asp:TreeView> 控件是一个供服务器创建导航菜单的占位符。
控件的数据源由 DataSourceId 属性进行定义。id="nav1" 把它连接到 <asp:SiteMapDataSource> 控件。
<asp:SiteMapDataSource> 控件会自动连接默认的 sitemap 文件(web.sitemap)。
点击此处查看 Menu、TreeView 以及 SiteMapPath 的 DEMO。
SiteMapPath
SiteMapPath 控件可显示指向当前页面的指针(导航路径)。该路径显示为指向上级页面的可点击链接。
与 TreeView 和 Menu 控件不同,SiteMapPath 控件不使用 SiteMapDataSource。SiteMapPath 控件默认使用 web.sitemap 文件。
提示:如果 SiteMapPath 没有正确显示,很可能是由于 web.sitemap 文件中存在 URL 错误。
代码实例:
<form runat="server">
<asp:SiteMapPath runat="server" />
</form>
上面例子中的 <asp:SiteMapPath> 控件是一个供服务器创建导航菜单的占位符。
点击此处查看 Menu、TreeView 以及 SiteMapPath 的 DEMO。
HTML 服务器控件
ASP.NET 文件中的 HTML 元素默认作为文本进行处理。为了使这些元素可编程化,需要向 HTML 元素添加 runat="server" 属性。该属性指示该元素应作为服务器控件进行处理。
注释:所有 HTML 服务器控件必须位于带有 runat="server" 属性的 <form> 标签内!
注释:ASP.NET 要求所有 HTML 元素必须正确关闭和嵌套。
HTML 服务器控件    描述
HtmlAnchor
控制 <a> HTML 元素
HtmlButton
控制 <button> HTML 元素
HtmlForm
控制 <form> HTML 元素
HtmlGeneric
控制其他未被具体的 HTML 服务器控件规定的 HTML 元素,比如 <body>, <div>, <span> 等等。
HtmlImage
控制 <image> HTML 元素
HtmlInputButton
控制 <input type="button"> 、<input type="submit"> 以及 <input type="reset"> HTML 元素
HtmlInputCheckBox
控制 <input type="checkbox"> HTML 元素
HtmlInputFile
控制 <input type="file"> HTML 元素
HtmlInputHidden
控制 <input type="hidden"> HTML 元素
HtmlInputImage
控制 <input type="image"> HTML 元素
HtmlInputRadioButton
控制 <input type="radio"> HTML 元素
HtmlInputText
控制 <input type="text"> 和 <input type="password"> HTML 元素
HtmlSelect
控制 <select> HTML 元素
HtmlTable
控制 <table> HTML 元素
HtmlTableCell
控制 <td> 和 <th> HTML 元素
HtmlTableRow
控制 <tr> HTML 元素
HtmlTextArea
控制 <textarea> HTML 元素
Web 服务器控件是可被服务器理解的特殊 ASP.NET 标签。
Web 服务器控件
类似 HTML 服务器控件,Web 服务器控件同样在服务器创建,且需要 runat="server" 属性才能工作。不过,Web 服务器控件不必映射任何已有的 HTML 元素,它们可代表更复杂的元素。
创建一个 Web 服务器控件的语法是:
<asp:control_name id="some_id" runat="server" />
Web 服务器控件    描述
AdRotator
显示一个图形序列
Button
显示按钮
Calendar
显示日历
CalendarDay
calendar 控件中的一天
CheckBox
显示复选框
CheckBoxList
创建多选的复选框组
DataGrid    显示 grid 中数据源的字段
DataList    通过使用模版显示数据源中的项目
DropDownList
创建下拉列表
HyperLink
创建超链接
Image
显示图像
ImageButton
显示可点击的图像
Label
显示可编程的静态内容(使您对其内容应用样式)
LinkButton
创建超链接按钮
ListBox
创建单选或多选的下拉列表
ListItem
创建列表中的一条项目
Literal
显示可编程的静态内容(无法使您对其内容应用样式)
Panel
为其他控件提供容器
PlaceHolder
为由代码添加的空间预留空间
RadioButton
创建单选按钮
RadioButtonList
创建单选按钮组
BulletedList
创建项目符号格式的列表
Repeater    显示绑定到控件的重复列表项
Style
设置控件的样式
Table
创建表格
TableCell
创建表格单元
TableRow
创建表格行
TextBox
创建文本框
Xml
显示 XML 文件或 XSL 转换的结果

Validation 服务器控件用于用于验证用户输入。
Validation 服务器控件
Validation 服务器控件用于验证输入控件的数据。如果数据未通过验证,则向用户显示错误消息。
创建 Validation 服务器控件的语法是:
<asp:control_name id="some_id" runat="server" />
Validation 服务器控件    描述
CompareValidator
把一个输入控件的值与另一个输入控件或一个固定的值进行对比。
CustomValidator
允许您编写一个方法,来处理输入值的验证。
RangeValidator
在两个值的范围内检查输入的值。
RegularExpressionValidator
确保输入控件的值匹配指定的模式。
RequiredFieldValidator
是输入控件成为必需(必填)的字段。
ValidationSummary
显示网页中所有验证错误的报告。