原文地址: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 Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\GLOBAL这个目录下。这个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后)

Localized images in MOSS Masterpage / Page Layouts

Recently I had to create a MOSS masterpage with localized images on it. In other words, the images contain text or other content that should change depending on the language of the site. It took me quite some time to find out how to do this gracefully but I think this is the best way to do it.

I normally store all images in the /Style Library/Images folder on the server. To distinguish the localized images I created language-folders in this folder that contain the image in that language. For instance, an image called "locallogo.png" would be stored in /Style Library/Images/en-US as well as in /Style Library/Images/nl-NL where the en-US and nl-NL correspond to the locale of the all the different languages on your site.
Now, on the masterpage we can reference both these images like this:

<img runat="server" src="<% $SPUrl:~SiteCollection/Style Library/Images/~language/locallogo.png%>" />

The first thing you'll notice is the runat="server" part. This tells moss that the tag contains asp.net code that should be executed on the server. The second important thing on this line is the ~language part. This is a special MOSS marker that is replaced on the server by the locale of the current page, for instance, en-US. Because we placed the image in folders that also had locale-names, we will always have a reference to the image in the correct language!

下面列出了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" />
提供给内容页添加所有可以放在<head>区域的内容,如CSS、JS等。

转载于:https://www.cnblogs.com/bmib/archive/2011/03/23/1992476.html

MOSS 2007基础:WSS 3.0 中的母版页(Master Pages)和内容页(Content Pages)相关推荐

  1. WSS 3.0中An unexpected error has occurred的一个解决方案

    之前在CodePlex上讨论到我在WSS v3里遇到的一个Bug,CKS团队的TheKid向我引用了他的一个解决方案,大意如下 如果需要了解WSS 3.0中An unexpected error ha ...

  2. MOSS 2007基础:内容类型(Content Type)之二

    原文地址:http://www.msd2d.com/Content/Tip_viewitem_03NoAuth.aspx?id=a14f3443-c394-4950-a048-8394bcce749b ...

  3. SwiftUI 4.0 中原生图表(Charts)实现超长内容滚动功能

    功能需求 SwiftUI 4.0给我们带来了 iOS 16 中美美哒的原生图表(Charts). 不过,默认的 Charts 是将全部项目一起显示在视图中,如果图表中需要显示的数据很多,就会挤压在一起 ...

  4. vue2.0中实现div容器里的内容懒加载

    当全部数据加载完毕时: 有以上组件情况,点击查询更多按钮可实现懒加载功能. 主要看userList组件和父组件就可以了. <template><div id="root&q ...

  5. net5:Theme主题样式的动态变换,在内容页content中操作影响模板页的操作

    原文发布时间为:2008-07-29 -- 来源于本人的百度文章 [由搬家工具导入] using System; using System.Data; using System.Configurati ...

  6. .NET Core 3.0 中的新变化

    译者:楚人Leo 译文:http://www.cnblogs.com/leolion/p/10585834.html 原文:https://msdn.microsoft.com/en-us/magaz ...

  7. ASP.NET 2.0中CSS失效的问题总结

    ASP.NET 2.0中CSS失效的问题总结 Posted on 2007-09-02 12:34 上校 阅读(225) 评论(0) 编辑 收藏 所属分类: CSS, ASP.NET 经常有人遇到AS ...

  8. php 母版页,.NET_ASP.NET 2.0 中的创建母版页,  虽然母版页和内容页功能 - phpStudy...

    ASP.NET 2.0 中的创建母版页 虽然母版页和内容页功能强大,但是其创建和应用过程并不复杂.本节和下一节将以创建如图1所示示例为例,向读者详细介绍,使用Visual Stuido 2005创建母 ...

  9. ASP.Net4.0中新增23项功能

    这篇文章介绍Visual Studio 2010 (ASP.Net 4.0)的新功能. 1.代码片段(Code Snippets): 代码段是预先开发的代码模板,可以节省我们对有关语法思考的时间.在V ...

最新文章

  1. Python XML的解析与创建
  2. 智能车技术与实践_ROS入门
  3. 【leetcode】clone-graph
  4. Mysql 索引 n-gram分词引擎使用
  5. python rsa_Python RSA 公钥加密结果不一致
  6. html5 canvas 详细使用教程
  7. Mybatis-实现逆向代理
  8. 21天学通c语言pdf百度云,21天学通C语言「pdf+epub+mobi+txt+azw3」
  9. UML图绘制(三)-----用例图的画法
  10. Linux——常用工具
  11. MATLAB-二次曲面
  12. Cadence PSpice 仿真5:运放噪声仿真实战图文教程
  13. 将《先生请出山》放到桌面上,聊聊如何将视频做成动态壁纸
  14. 台式计算机那里可以录音,录音机怎么录音?电脑录音介绍
  15. 自动化所夏令营数学概念复习
  16. 搜查令——项目个人总结+个人自评
  17. 虚拟机共享目录添加按钮灰色_共享按钮将成为PS4最重要的遗产
  18. win10远程桌面连接都有哪些工具
  19. linux驱动K10运算卡,NVIDIATESLA丽台K20K10C2075C2070运算加速卡
  20. Unity 输出360图片

热门文章

  1. 游戏开发者怎么做出以假乱真的画面效果?大气散射渲染了解一下
  2. 不悲观-不emo-永远保持正能量——21年末,去掉所有的不开心
  3. Linux(Redhat5.5)配置时间服务器(Ntp)法
  4. i5 11300H和i5 10300H 的区别
  5. C++ TR1、TR2与boost的关系
  6. Android学习记录1--布局的类型
  7. getopt()和getopt_long()用法
  8. Linux 网络编程四(socket多线程升级版)
  9. UVa 1626 (输出方案) Brackets sequence
  10. resizable 回调函数参数详解