.Net乐园

专注.Net的开发与应用……

导航

原文地址:http://robgarrett.com/cs/blogs/software/archive/2006/07/03/2065.aspx

  这篇很短的文章展示了ASP.NET2.0中的母板页和内容页在Windows SharePoint Services v3.0中的应用。WSS 3.0 是在ASP.NET 2.0 的基础上实现的,所以WSS 3.0中母板页/内容页也是基于ASP.NET 2.0中的相应功能而实现站点定制的。网上已经有很多介绍ASP.NET2.0中母版页的文章了。下面提供的链接来源与MSDN,个人认为是一篇介绍ASP.NET 2.0中母版页组成结构的很好的入门文章。

  http://msdn.microsoft.com/msdnmag/issues/04/06/ASPNET20MasterPages/

  全局母版页

  母版页允许多级嵌套。所有在sharepoint中的站点都使用default.master这个母版页。这个文件位于C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATEGLOBAL这个目录下。这个default.master母版页是全局母版页。任何对该页面的修改将影响所有的sharepoint站点,而且会影响管理中心站点。

  在Sharepoint Designer中编辑母版页

  SharePoint Designer是原来的FrontPage的替代工具。SPD(就是sharepoint designer)允许网站设计者以可视化的设计界面定制sharepoint站点的外观和样式。当我们打开一个sharepoint站点,SPD的左上方会列出站点的结构。这个sharepoint站点里面包括的文件夹,列表,模板和页面一目了然。我们要找的母版页位于以下路径:_catalogs/masterpage/default.master

  在设计视图中查看站点的母版页,在XHTML标记中指定了全局母版页。在我们对其做编辑之前,实际上所有的这个指向都指到同一个页面。但当我们编辑并保存后,SPD会在SharePoint的数据库中为我们保存一个定制后的母版页版本。这和SharePoint 2003中的页面定制机制(或者叫un-ghosting)是一样的。当一个页面被定制后,之前的ghosting关系就被断掉了。即不会在指向磁盘文件系统中的某个文件,而是在数据库中保存了该页面的定制后版本。

  注意:在对站点的母版页做了改动后,这个改动将影响站点下所有的页面。但在_layouts目录下的页面除外。因为这些页面实际上不是站点内的页面,它们使用了一个不同的母版页(实际上也放在_layouts目录下)。这类页面的一个典型的例子就是“网站设置”页面。

  SPD可以允许我们将已经定制过的页面恢复成原来的模板指定的状态。这是我们在FrontPage时代梦寐以求的一个功能。在定制后的页面文件上点击右键,在上下文菜单中就包括了这个选项。

  内容页面

  Sharepoint里的内容页在页面声明中使用MasterPageFile属性指定了其使用的母版页。典型的默认母版页的URL地址为~masterurl/default.master。其中的~masterurl指定了该站点的母版页的存放位置,所有的这些都是又sharepoint控制的。在sharepoint的母版页中定义了许多占位符(content placeholder)。这些占位符定义了页面的不同区域,开发人员可以定制占位符最终显示给用户的内容。SharePoint中定义的占位符中多数并不允许用户重写其内容。

  多数的sharepoint页面都包括了PlaceHolderMain这个占位符,它控制了页面的主要内容部分。典型情况下,该占位符将包括一个web部件区域,用来拖webpart进去。但对于开发人员来说,我们可以用来放置我们想要放的任何东西。

  下面的表格列出了sharepoint的母版页中定义的占位符:(详细位置请对照default.master)

 

占位符的Name 描述
PlaceHolderAdditionalPageHead 需要写在页面<head>标签里的附加内容,如引用的脚本或样式文件
PlaceHolderBodyAreaClass 附加在页面顶部的body中的样式
PlaceHolderBodyLeftBorder 页面body的边框元素
PlaceHolderBodyRightMargin 页面body的右边距
PlaceHolderCalendarNavigator 在页面中有日历时为其显示一个日期选择框
PlaceHolderFormDigest 这是页面中必备的 "form digest"安全组件
PlaceHolderGlobalNavigation 站点导航
PlaceHolderHorizontalNav 导航标签
PlaceHolderLeftActions 左侧导航区下面的动作区
PlaceHolderLeftNavBar 左侧导航区
PlaceHolderLeftNavBarBorder 左侧导航区的边框元素
PlaceHolderLeftNavBarDataSource 左侧导航区菜单的数据源
PlaceHolderLeftNavBarTop 左侧导航区上面的导航区
PlaceHolderMain 页面主体
PlaceHolderMiniConsole 一个放置页面级命令的地方,比如在WIKI站点里的Edit Page, History, Incoming Links
PlaceHolderNavSpacer 左侧导航区的宽度
PlaceHolderPageDescription 页面描述区
PlaceHolderPageImage 页面左上的图标
PlaceHolderPageTitle 页面的<Title>,通常显示在浏览器的标题栏
PlaceHolderSearchArea 搜索框
PlaceHolderSiteName 站点名称
PlaceHolderTitleAreaClass TitleArea附加的样式
PlaceHolderTitleAreaSeparator TitleAreaSeparator区
PlaceHolderTitleBreadcrumb TitleBreadcrumb区
PlaceHolderTitleInTitleArea Breadcrumb区下面的标题
PlaceHolderTitleLeftBorder Title区左侧边框
PlaceHolderTitleRightMargin Title区右侧空白
PlaceHolderTopNavBar 标签导航区
PlaceHolderUtilityContent 页面底部需要的一块特殊内容
SPNavigation 在 Windows SharePoint Services中默认为空,用于附加的页面编辑控件
WSSDesignConsole 页面编辑控件,当页面进入编辑页面模式时使用(当我们点 Site Actions, Edit Page后)
hit counter javascript