天天看点

MOSS2007的母版页

引用自:http://www.cnblogs.com/lizhimin/archive/2007/04/20/720796.html

MOSS2007中所有的页面都是由母版页(Master Pages)和内容页(Content Pages)组成, MOSS 2007中的Master Page和在ASP.net中使用的Master Page是一样的.它们定义了网站页面的基本布局. Page layout的概念类似于ASP.net 2.0中的Content Page,它指向一个Master Page并且实现Content Placeholders 的内容.下面是一篇介绍ASP.NET 2.0中母版页组成结构的很好的入门文章。

Master Your Site Design with Visual Inheritance and Page Templates

母版页允许多级嵌套,所有在sharepoint中的站点默认都使用default.master这个母版页。这个文件位于

C:/Program Files/Common Files/Microsoft Shared/web server extensions/12/TEMPLATE/GLOBAL这个目录下。default.master母版页是全局母版页,任何对该页面的修改将影响所有的sharepoint站点,而且会影响管理中心站点。

sharepoint的母版页中定义了许多占位符(content placeholder)。这些占位符定义了页面的不同区域,开发人员可以定制占位符最

显示给用户的内容。SharePoint中定义的占位符中多数并不允许用户重写其内容。多数的sharepoint页面都包括了PlaceHolderMain这个占位符,它控制了页面的主要内容部分,典型情况下,该占位符将包括多个web部件区域,用来拖webpart进去。但对于开发人员来说,可以用来放置想要放的任何东西。

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

1、<asp:ContentPlaceHolder ID="PlaceHolderGlobalNavigationSiteMap" runat="server" />

放置连接到顶级站点的超连接

2、<asp:ContentPlaceHolder ID="PlaceHolderGlobalNavigation" runat="server" />

放置顶部一行内容。

3、<asp:ContentPlaceHolder ID="PlaceHolderSiteName" runat="server" />

放置站点名称

4、<asp:ContentPlaceHolder ID="PlaceHolderSearchArea" runat="server" />

放置搜索框

5、<asp:ContentPlaceHolder ID="PlaceHolderHorizontalNav" runat="server" />

放置水平导航栏

6、<asp:ContentPlaceHolder ID="PlaceHolderTopNavBar" runat="server" />

放置水平导航栏一行内容。

7、<asp:ContentPlaceHolder ID="WSSDesignConsole" runat="server" />

页面编辑控件,当页面进入编辑页面模式时使用(当我们点 Site Actions, Edit Page后)

8、<asp:ContentPlaceHolder ID="SPNavigation" runat="server" />

在 Windows SharePoint Services中默认为空,用于附加的页面编辑控件

9、<asp:ContentPlaceHolder ID="PlaceHolderPageImage" runat="server" />

左侧的图片

10、<asp:ContentPlaceHolder ID="PlaceHolderTitleLeftBorder" runat="server" />

Title区左侧边框

11、<asp:ContentPlaceHolder ID="PlaceHolderTitleBreadcrumb" runat="server" />

TitleBreadcrumb页面导航区

12、<asp:ContentPlaceHolder ID="PlaceHolderPageTitleInTitleArea" runat="server" />

Breadcrumb区下面的标题

13、<asp:ContentPlaceHolder ID="PlaceHolderMiniConsole" runat="server" />

一个放置页面级命令的地方,比如在WIKI站点里的Edit Page, History, Incoming Links

14、<asp:ContentPlaceHolder ID="PlaceHolderTitleRightMargin" runat="server" />

Title区右侧空白

15、<asp:ContentPlaceHolder ID="PlaceHolderTitleAreaSeparator" runat="server" />

TitleAreaSeparator区

16、<asp:ContentPlaceHolder ID="PlaceHolderLeftNavBarDataSource" runat="server" />

左侧导航区数据源

17、<asp:ContentPlaceHolder ID="PlaceHolderCalendarNavigator" runat="server" />

在页面中有日历时为其显示一个日期选择框

18、<asp:ContentPlaceHolder ID="PlaceHolderLeftNavBarTop" runat="server" />

左侧导航区上面的导航区

19、<asp:ContentPlaceHolder ID="PlaceHolderLeftNavBar" runat="server" />

左侧导航区

20、<asp:ContentPlaceHolder ID="PlaceHolderLeftActions" runat="server" />

左侧导航区下面的动作区

21、<asp:ContentPlaceHolder ID="PlaceHolderNavSpacer" runat="server" />

左侧导航区的宽度

22、<asp:ContentPlaceHolder ID="PlaceHolderLeftNavBarBorder" runat="server" />

左侧导航区的边框元素

23、<asp:ContentPlaceHolder ID="PlaceHolderBodyLeftBorder" runat="server" />

页面body的边框元素

24、<asp:ContentPlaceHolder id="PlaceHolderPageDescription" runat="server" />

页面描述区

25、<asp:ContentPlaceHolder id="PlaceHolderMain" runat="server" />

页面主体

26、<asp:ContentPlaceHolder ID="PlaceHolderBodyRightMargin" runat="server" />

页面body的右边空白

27、<asp:ContentPlaceHolder ID="PlaceHolderFormDigest" runat="server"/>

这是页面中必备的 "form digest"安全组件。

28、<asp:ContentPlaceHolder ID="PlaceHolderUtilityContent" runat="server" />

页面底部需要的一块特殊内容

29、<asp:ContentPlaceHolder ID="PlaceHolderBodyAreaClass" runat="server" />

附加在页面顶部的body中的样式

30、<asp:ContentPlaceHolder ID="PlaceHolderTitleAreaClass" runat="server" />

TitleArea附加的样式

31、<asp:ContentPlaceHolder id="PlaceHolderAdditionalPageHead" runat="server" />

提供给内容页添加所有可以放在区域的内容,如CSS、JS等。