引用自: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等。