当前位置:文档之家› 第4章-模板页和站点导航

第4章-模板页和站点导航

ContentPlaceHolderID="Main" Runat="Server"> </asp:Content>
4.0程序设计
模板页和内容页的对应关系
4.0程序设计
4.1.3 ContentPlaceHolder控件里默 认内容
在模板页里面定义ContentPlaceHolder控件时,还可以定义 相关的默认的内容。这些默认的内容在内容页里面没有提 供相应的Content控件时才会使用。 <asp:ContentPlaceHolder ID="Top" runat="server">
4.0程序设计
4.5 站点导航
• 4.5.1 • 4.5 2 • 4.5.3 • 4.5.4
站点地图 SiteMapPath控件 Menu 控件 TreeView 控件
4.0程序设计
4.5.1 站点地图
• 站点地图(SiteMap)主要为站点导航控件提供站点层 次结构信息,它的扩展名是.sitemap,默认名为 Web.sitemap。只有保持默认名称的站点地图才能 被自动加载,而且必须出现在网站根目录中。站点 地图描述站点的逻辑结构。当需要添加或移除页面 时,只需要修改站点地图,而不需要修改所有网页 的超链接就能够改变页面导航。
4.0程序设计
选择母板页
4.0程序设计
内容页主要代码
<asp:Content ID="Content1" ContentPlaceHolderID="Top" Runat="Server">
</asp:Content> <asp:Content ID="Content2"
4.3以编程方式设置模板页
通过编程方式来动态设置模板页只需设置 Page.MasterPageFile属性就可以了。但这一步 必须在Page.Init事件阶段完成,在这之后,再 设置这一属性会产生一个异常。如下面的代码 所示:
protected void Page_PreInit(object sender, EventArgs e)
4.0程序设计
要解决如相对路径问题,可以通过如下三种方式来进行: 1) 可以预先在模板页里把图片路径写成相对于内容页的地址。
不过这会带来混淆,限制模板页使用的范围,并且产生在设 计环境里不正确显示模板页的负面效应。 2) 把HTML标签变成服务器端控件,这样就会修复这 个错误。 3) 在模板页中使用方法来重新解析相对路径,如下面的代码 所示: <img id="img3" src="<%=Page.ResolveUrl("~/MasterPages/3.jpg")%>" alt="img3"/>
4.0程序设计
3.5.3 Menu 控件
Menu(菜单)控件是一个支持层次型数据的 Web控件,它由MenuItem(菜单项)控件组成, 顶级(级别0)菜单项称为根菜单项,具有父菜 单项的菜单项统称为子菜单项。通过Menu的 Items属性可以表示内部的每个MenuItem,通 过ChildItems属性来表示菜单项下面的子菜单 项。每个菜单项都具有Text属性和Value属性。
4.pe指令
• 在内容页面代码里面通过 MasterType指令的 VirtualPath厲性来指定相应.master文件的虚拟路径 就可以了
• <%@ MasterType VirtualPath="~/Test.Master" %>
4.0程序设计
第4章模板页和站点导航
4.0程序设计
本章学习目标
➢了解中模板页的作用 ➢掌握中模板页的设计与应用方法 ➢掌握中主题的创建与使用方法 ➢掌握页面导航控件的使用方法
4.0程序设计
4.1 模板页基础
• 4.1.1 创建简单的模板页 • 4.1.2 使用简单的内容页 • 4.1.3 ContentPlaceHolder控件里默认内容 • 4.1.4 相对路径的处理 • 4.1.5 通过Web.config文件全局设置模板页
4.0程序设计
4.2.1 使用 Page.Master属性
• Master属性返回的是一般的MasterPage类。因 此,必须把它转换成特定类型的模板页类,才 能访问模板页的这些公有的成员。
Test test = (Test)Page.Master; Label1.Text = "Labell:” + test.MyTxt; test .MyTxt = "Label2:在内容页里修改模板页
</body> </html>
4.0程序设计
模板页设计效果
4.0程序设计
4.1.2 使用简单的内容页
• 创建模板页的内容页的方法与创建普通的 Web页面一样,即选中项目右击鼠标,执行 "添加新项"命令,在弹出的 "添加新项"对话 框中选择 Web窗体,并钩选“选择模板页” 选项。
4.0程序设计
SiteMapPath控件常用属性
属性 PathSeparator
PathDirection ParentLevelsDisplayed
说明
获取或设置一个字符串,该 字符串在呈现的导航路径中 分隔SiteMapPath节点。默认 值是“>” 获取或设置导航路径节点的 呈现顺序,有RootToCurrent 和CurrentToRoot两个属性值 获取或设置控件显示的相对 于当前显示节点的父节点级 别数。默认值是 -1,表示没 有限制
{ Page.MasterPageFile = "~/Test.Master";
}
4.0程序设计
在使用以编程方式来动态设置模板页时,还必须注意 如下几点:
1) 确保在Web.config文件中或者内容页面的@Page指令 中没有引用MasterPageFile的<pages>元素,只有这样 才会得到成功加载的页面,并且引入了模板页。
在内容页面代码里面添加好MasterType指令之后,就可以直 接在内容页的后台代码里面通过访问Page类的Master属性来 访问模板页的公有成员了,如Master.MyTxt,而无须再继续 创建模板页的实例:
Labell.Text = "Label1:" + Master.MyTxt; Master.MyTxt= "Label2:在内容页里修改模板页的MyTxt属 性的值。"; Label2.Text = Master.MyTxt;
4.0程序设计
4.1.5通过Web.config文件全局设置模板页
如果创建一个Web应用程序,它只有一个模板页,那么为站点 内的每个页面都设置模板页似乎有点过分。因此,还可以借助 Web.config文件一次性对整个网站的所有页面应用模板页。所 要做的 只是像下面的代码这样,在Web.config文件里面加入一 <pages>节点,并设置<pages>节点的 masterPageFile 属性:
4.0程序设计
4.5.2 SiteMapPath控件
• SiteMapPath控件提供一个面包条 (Breadcrumb),它是一行文本,显示用户当前 在网站结构中的位置。该控件显示了站点地 图中从根节点到当前页面的节点的完整路径。 与其他导航控件的不同之处是,SiteMapPath 控件仅对向上返回到上一层级有用。
2) 确保内容页面没有使用MasterType指令来创建对模 板页的强类型引用。
3) 确保内容页面和所设置的模板页完全兼容。
4.0程序设计
4.4嵌套模板页
• 4.4.1 嵌套模板页案例 • 4.4.2 嵌套模板页中的控件访问
4.0程序设计
4.4.2 嵌套模板页中的控件访问
<a href="Test.aspx">首页</a> <a href /">成都信息工程大学</a> </asp:ContentPlaceHolder>
4.0程序设计
4.1.4 相对路径的处理
• 在对模板页的设计中,相对路径的处理经常是一件 让人头痛的事情。如果使用的是静态文字,这一问 题不会困扰你。不过,如果需要在模板页中添加图 片和链接,根据所使用的HTML标签或者服 务器控件的不同,相对路径就会有不同的解析方式。 这时相对路径的问题就可能发生。
对于嵌套模板页中的控件访问,可以分为两种情 况进行处理: 1. 对顶层模板页控件的访问
对顶层模板页控件的访问方法类似干对没有嵌套的 模板页控件的访问。唯一不同的是:没有嵌套的模板 页控件的访问只有一级Master属性,而对顶层模板页 控件的访问却有多级Master属性,而Master属性的级 数由嵌套的模板页层数所决定。
4.0程序设计
siteMapNode属性
属性名 title description
url
说明
提供链接的文本描述 首先说明该链接的作用,其 次还用于链接上的ToolTip属 性。 描述文件在网站中的位置。 如果文件在根目录下,使用 文 件 名 , 如 "~/Default.aspx"; 如果文件位于子文件夹下, 则在此属性值中包含该文件 夹,如“pic/default.aspx”
然后可以在内容页的后台代码中来调用这个Label控 件
4.0程序设计
Label txt_msg = Master.FindControl("Label1") as Label;
if (txt_msg != null) { txt_msg.Text ="修改后的值"; }
相关主题