商讯信箱
用户名: @
密  码:   注册|忘记密码
登录
个人用户经销商
信箱 E杂志
您的位置:首页 > 学院 > 正文       

Personal Web Site案例解析系列四

--母版页应用

作者:日光倾城  2007-07-11   

    【IT168 学院频道】虽然基于PWS的Web站点功能简单,但是该应用程序却涉及多种ASP.NET 2.0新技术特性的应用。尤为关键的是,它还为利用ASP.NET 2.0技术创建两层Web应用程序提供了典型范本。在下面的几篇文章中将针对各种技术要点、实现方法展开分析。本文重点介绍母版页的应用方法。

    1.  母版页应用

    母版页是ASP.NET 2.0的新增功能,其主要用于替代过去的用户控件以实现页面模板功能,同时,母版页还提供了多种特性,可实现很多用户控件难以完成的功能,例如,母版页与内容页之间的交互等。母版页在基于PWS的Web站点应用程序中应用广泛,它为提高页面开发效率,降低页面维护强度奠定了坚实基础。本文将介绍母版页在该应用程序中的应用方法。

    在解决方案资源管理器中,包括一个母版页文件Default.master。与*.aspx文件相同,Default.master文件同时还关联一个代码隐藏页文件Default.master.cs。然而,由于该母版页仅处理页面呈现,而与其他业务逻辑无关,因此,读者将会发现代码隐藏页文件仅包括其实际代码框架,并不包含任何业务逻辑等实际源代码实现。

    首先,在Visual Studio 2005中打开Default.master文件,并切换至设计视图。如图1列举了设计视图。

图1(点击看大图)

    如图1所示,母版页Default.master中主要包括了页首和页尾等页面公共部分内容,其中涉及多个服务器控件,例如,Menu、SiteMapPath、SiteMapDataSource和LoginStatus等。同时,在页面中部使用一个ContentPlaceHolder控件为内容页实现占位。当请求相关内容页时,.NET执行引擎将为用户发送母版页和内容页合并生成的结果页。这样,用户可阅览具有多个相同页首和页尾结果页。对于开发人员而言,如果修改了母版页内容,例如,将文字"此处是您的姓名"修改为其他文字,那么用户看到的所有结果页都将发生相应变化。

    在Default.master页面底部,可以看到一个SiteMapDataSource控件。通过该控件可自动获取应用程序根目录下web.sitemap的数据。web.sitemap是站点地图文件,其以标准XML格式存储着Web站点结构数据,具体源代码如下所示。

<?xml version="1.0" encoding="utf-8"?>
<siteMap>
  <siteMapNode title="主页" url="Default.aspx">
    <siteMapNode title="简历" url="Resume.aspx"/>
    <siteMapNode title="链接" url="Links.aspx"/>
    <siteMapNode title="相册" url="Albums.aspx">
      <siteMapNode title="照片" url="Photos.aspx">
        <siteMapNode title="详细信息" url="Details.aspx"/>
      </siteMapNode>
    </siteMapNode>
    <siteMapNode title="注册" url="Register.aspx"/>
    <siteMapNode title="管理" url="Admin/Albums.aspx">
      <siteMapNode title="照片" url="Admin/Photos.aspx">
        <siteMapNode title="详细信息" url="Admin/Details.aspx"/>
      </siteMapNode>
    </siteMapNode>
  </siteMapNode>
</siteMap>

    由以上代码可知,web.sitemap文件中包括一个根节点siteMap。在根节点下包括一个起始节点"主页"和多个siteMapNode子节点,其中设置了title和url属性。title属性用于设置节点名称,url属性用于设置节点的URL地址。为了使读者更加方便地了解web.sitemap文件所设置的站点结构,下图2以图形方式显示了该站点结构。读者可以对照源代码理解其中的结构特征。
图2

    图2所示的结构层次非常清晰,在此不再多做说明。需要说明的一点是:如果开发人员对Web站点进行修改,例如,修改页面文件名称、增加/删除文件,那么必须在web.sitemap文件中得到体现。同时,在修改过程中一定要牢记:节点的url属性值在整个web.sitemap文件中必须是唯一的。

    理解如图2所示的站点文件结构对于准确有效的显示这些数据有着重要意义。在母版页中,共有4个服务器控件与web.sitemap文件相关,它们是SiteMapDataSource、Menu(2个)和SiteMapPath。下面列举了这些控件在母版页中的源代码。

<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" StartingNodeOffset="0" />
<asp:SiteMapPath ID="SiteMapPath1" runat="Server" PathSeparator=" > " RenderCurrentNodeAsLink="true" />
<asp:Menu ID="menua" runat="server" DataSourceID="SiteMapDataSource1" CssClass="menua" Orientation="Horizontal" MaximumDynamicDisplayLevels="0" SkipLinkText="" StaticDisplayLevels="2" />
<asp:Menu ID="menub" runat="server" DataSourceID="SiteMapDataSource1" CssClass="menub" Orientation="Horizontal" MaximumDynamicDisplayLevels="0" SkipLinkText="" StaticDisplayLevels="2" />

1 2 3
有问必答
【内容导航】
第1页:母版页应用 第2页:控件的应用
第3页:小结
©版权所有。未经许可,不得转载。
[责任编辑:李乾仑] [我要挑错]
相关产品
本文相关产品
   没有相关产品