使用SharePoint 2010 母版页
SharePoint 2010母版页所用的还是ASP.NET 2.0中的技术。通过该功能,实现了页面框架布局与实际内容的分离。虽然在本质上自定义母版页的过程和以前版本的SharePoint大致相同,但是从2007到2010仍然有许多重要的值得我们关注的变化。本文将试图:
- 巩固和掌握SharePoint 2010里母版页相关的一些基本操作
- 突出描述新版本和以前的版本之间的一些变化
- 了解一些有用的或比较常见的自定义方式
SharePoint 2010 母版页的类型
首先,让我们快速的看一下在SharePoint 2010中母版页的类型:
v4.master
默认的工作组站点的母版页。提供了功能区和其他用户界面上的改变。
特征
- 网站操作在2010中更新。现在放在左侧。
- 功能区可用。
default.master
从SharePoint 2007升级的网站使用该母版页,除非我们手工改成v4版本。
特征
- SharePoint 2007版本的 网站操作在右侧
- 没有功能区。
minimal.master
母版页中几乎什么也没有。通常用于搜索中心和Office Web应用程序的页面。这个母版页不应该与2007里的开发人员自己修剪下来的最简单的自定义母版页混淆。 minimal.master现在是一个开箱即用的母版页。在SharePoint 2010里那些修剪完的自定义母版页通常是指Starter母版页。
特征
- 不包括导航
Starter母版页
SharePoint 2007里通常称为minimal母版页。这些母版页往往是由开发人员创建的,用于快速开始母版页的定制,基于其上扩充功能,做出实际需要的母版页。
simple.master
这个母版页是用在登录和错误页面。要自定义该页面,必须替换存放在服务器_layouts目录下的相应页面文件。若要了解更多信息,请参考MSDN上的文章“SharePoint中的默认母版页”。
使用simple.master 的网页
- Login.aspx
- SignOut.aspx
- Error.aspx
- ReqAcc.aspx
- Confirmation.aspx
- WebDeleted.aspx
- AccessDenied.aspx
其他母版页
以下这些杂七杂八的母版页,在定制网站时一般不会去动。
包括:
- application.master
- applicationv4.master
- dialog.master
- layouts.master
- layoutsv3.master
- pickerdialog.master
- rtedialog.master
- simple.master simple.master
- simplev4.master
- mwsdefault.master
- mwsdefaultv4.master
- admin.master
- popup.master
升级至SharePoint 2010母版页
功能区里的控件
- 发布控制台- <PublishingConsole:Console>
- 网站操作菜单- <PublishingSiteAction:SiteActionMenu>
- 登录和登录控制(如果使用自定义登录,被移到功能区里了)。
所需内容占位符
PlaceHolder控件 | 描述 | 新增 |
<asp:ContentPlaceHolder id="PlaceHolderQuickLaunchTop" runat="server"> | 快速启动菜单顶部。 | 是 |
<asp:ContentPlaceHolder id="PlaceHolderQuickLaunchBottom" runat="server"> | 快速启动菜单底部。 | 是 |
<asp:ContentPlaceHolder id="PlaceHolderPageTitle" runat="server"/> | 该网站的标题。 | 否 |
<asp:ContentPlaceHolder id="PlaceHolderAdditionalPageHead" runat="server"/> | 页面head部分的占位符,用于在页面对应的HTML的head标记中添加额外例如ECMAScript(JavaScript,JScript)和层叠样式表(CSS)。 | 否 |
<asp:ContentPlaceHolder id="PlaceHolderBodyAreaClass" runat="server"/> | 在body区域中的类。 | 否 |
<asp:ContentPlaceHolder ID="SPNavigation" runat="server"> | 该控件用于放置页面编辑类的控件。 | 否 |
<asp:ContentPlaceHolder id="PlaceHolderSiteName" runat="server"> | 当前页面所在站点的名称。 | 否 |
<asp:ContentPlaceHolder id="PlaceHolderPageTitleInTitleArea" runat="server" /> | 出现在标题区域的当前页的标题。 | 否 |
<asp:ContentPlaceHolder id="PlaceHolderPageDescription" runat="server"/> | 当前页的说明。 | 否 |
<asp:ContentPlaceHolder id="PlaceHolderSearchArea" runat="server"> | 页面中放置搜索控件的位置。 | 否 |
<asp:ContentPlaceHolder id="PlaceHolderGlobalNavigation" runat="server"> | 页面上的面包屑控件。 | 否 |
<asp:ContentPlaceHolder id="PlaceHolderTitleBreadcrumb" runat="server"> | 面包屑控件上的面包屑文本。 | 否 |
<asp:ContentPlaceHolder id="PlaceHolderGlobalNavigationSiteMap" runat="server"> | 页面上子网站和兄弟网站的全局导航。 | 否 |
<asp:ContentPlaceHolder id="PlaceHolderTopNavBar" runat="server"> | 用于放置顶部导航栏的容器。 | 否 |
<asp:ContentPlaceHolder id="PlaceHolderHorizontalNav" runat="server"> | 顶部导航栏中的导航菜单。 | 否 |
<asp:ContentPlaceHolder id="PlaceHolderLeftNavBarDataSource" runat="server" /> | 放置填充左侧导航所需数据源的容器。 | 否 |
<asp:ContentPlaceHolder id="PlaceHolderCalendarNavigator" runat="server" /> | 日期选择器,用于包含日历的页面。 | 否 |
<asp:ContentPlaceHolder id="PlaceHolderLeftNavBarTop" runat="server"/> | 左侧导航栏顶部区域。 | 否 |
<asp:ContentPlaceHolder id="PlaceHolderLeftNavBar" runat="server"> | 快速启动栏。 | 否 |
<asp:ContentPlaceHolder id="PlaceHolderLeftActions" runat="server"> | 快速启动栏上的其他对象。 | 否 |
<asp:ContentPlaceHolder id="PlaceHolderMain" runat="server"> | 页面的主要内容。 | 否 |
<asp:ContentPlaceHolder id="PlaceHolderFormDigest" runat="server"> | 存储页面中 Form Digest控件的容器。 | 否 |
<asp:ContentPlaceHolder id="PlaceHolderUtilityContent" runat="server"/> | 附加在页面底部的内容在。从HTML角度来说,是Form标记以外的部分。 | 否 |
<asp:ContentPlaceHolder id="PlaceHolderTitleAreaClass" runat="server"/> | title部分的类(现在是在head标记里)。对其定制时如果添加一个WebPartZone到这个palceholder会报错。 | 否 |
<asp:ContentPlaceHolder id="PlaceHolderPageImage" runat="server"/> | 不属于用户界面的组成部分,是为了向后兼容。 | 否 |
<asp:ContentPlaceHolder id="PlaceHolderTitleLeftBorder" runat="server"> | 不属于用户界面的组成部分,是为了向后兼容。 | 否 |
<asp:ContentPlaceHolder id="PlaceHolderMiniConsole" runat="server"/> | 不属于用户界面的组成部分,是为了向后兼容。 | 否 |
<asp:ContentPlaceHolder id="PlaceHolderTitleRightMargin" runat="server"/> | 不属于用户界面的组成部分,是为了向后兼容。 | 否 |
<asp:ContentPlaceHolder id="PlaceHolderTitleAreaSeparator" runat="server"/> | 不属于用户界面的组成部分,是为了向后兼容。 | 否 |
<asp:ContentPlaceHolder id="PlaceHolderNavSpacer" runat="server"> | 不属于用户界面的组成部分,是为了向后兼容。 | 否 |
<asp:ContentPlaceHolder id="PlaceHolderLeftNavBarBorder" runat="server"> | 不属于用户界面的组成部分,是为了向后兼容。 | 否 |
<asp:ContentPlaceHolder id="PlaceHolderBodyLeftBorder" runat="server"> | 不属于用户界面的组成部分,是为了向后兼容。 | 否 |
<asp:ContentPlaceHolder id="PlaceHolderBodyRightMargin" runat="server"> | 不属于用户界面的组成部分,是为了向后兼容。 | 否 |
添加功能区
功能区是用户界面里一个新增加的特性。 SPRibbonPeripheralContent控件会显示在这一区域,但如果需要也可以将其移到功能区外面。
步骤
复制并粘贴下面的代码到你的母版页。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
< div id="s4-ribbonrow" class="s4-pr s4-ribbonrowhidetitle"> < div id="s4-ribboncont"> < SharePoint:SPRibbon runat="server" PlaceholderElementId="RibbonContainer" CssFile=""> < SharePoint:SPRibbonPeripheralContent runat="server" Location="TabRowLeft" CssClass="ms-siteactionscontainer s4-notdlg"> < span style=""> <%-- 在这里插入网站操作菜单 --%> </ span > </ SharePoint:SPRibbonPeripheralContent > < span style=""><%-- 在这里插入全局导航 --%></ span > < SharePoint:SPRibbonPeripheralContent runat="server" Location="TabRowRight" ID="RibbonTabRowRight" CssClass="s4-trc-container s4-notdlg"> < span style=""><%-- 在这里插入右上角的控件 --%> </ span > </ SharePoint:SPRibbonPeripheralContent > </ SharePoint:SPRibbon > </ div > < div id="notificationArea" class="s4-noti"> < span style=""><%-- 通知内容将出现在这个div里 --%></ span > </ div > < asp:ContentPlaceHolder ID="SPNavigation" runat="server"> < SharePoint:DelegateControl runat="server" ControlId="PublishingConsole"> </ SharePoint:DelegateControl > </ asp:ContentPlaceHolder > < div id="WebPartAdderUpdatePanelContainer"> < asp:UpdatePanel ID="WebPartAdderUpdatePanel" UpdateMode="Conditional" ChildrenAsTriggers="false” runat="server"> < ContentTemplate > < WebPartPages:WebPartAdder ID="WebPartAdder" runat="server" /> </ ContentTemplate > < Triggers > < asp:PostBackTrigger ControlID="WebPartAdder" /> </ Triggers > </ asp:UpdatePanel > </ div > </ div > |
页面滚动时固定功能区
在母版页上进行以下更改,以保证页面内容滚动时不会影响功能区的使用。
- 将页面内容部分移动到下面的div内
12345
<
div
id="s4-workspace">
<
div
id="s4-bodyContainer">
内容
</
div
>
</
div
>
如果您的页面是固定宽度的,添加 s4-nosetwidth类到s4-workspace div里。
1<
div
ID="s4-workspace" class="s4-nosetwidth">
- 将标题区域移动到如下id的div里。
1
<
div
id="s4-titlerow">标题区</
div
>
- 更新body标记和CSS规则,使其不滚动。 Body标记和规则将类似于下面这样:
1
<
body
scroll="no" ...>主体内容</
body
>
将控件添加到母版页
有一组控件是SharePont功能必须的,包括:SPPageManager, ScriptManager和 ScriptLink。
将这些控件添加到您的母版页
- 打开您的母版页文件。
- 复制并粘贴以下代码,以便添加ScriptManager控件。必须放在form标记内,并且在功能区前面。
1
<
asp:ScriptManager
id="ScriptManager" runat="server" EnablePageMethods="false" EnablePartialRendering="true" EnableScriptGlobalization="false" EnableScriptLocalization="true" />
- 复制并粘贴以下代码,以便添加SPPageManager控件。 必须放在head标记内。
1
<
SharePoint:SPPageManager
runat="server" />
- 复制并粘贴以下代码,以便添加ScriptLink控件。必须放在head标记内。
1
<
SharePoint:ScriptLink
defer= "true" runat="server"/>
- 保存您的母版页文件。
防止某些区域在模式窗口中显示
- 网站使用了自定义的系统母版页(通常与发布页面用的母版页相同)。
- 自定义母版页中在模式窗口中应隐藏的区域对应的标记遗漏了s4-notdlg类。
1
2
3
|
< div class=”cccontent”> 你的内容 </ div > |
1
2
3
|
< div class=”cccontent s4-notdlg”> 你的内容 </ div > |
添加一个Placeholder以便在母版页中使用Web部件
在SharePoint Designer 2010中的步骤
- 在你的自定义母版页中添加一个唯一命名的内容占位符。例如:
1
<
asp:ContentPlaceHolder
id="PlaceHolderCopyright" runat="server"/>
- 在页面布局中的为该占位符插入自定义内容
1
<
asp:Content
ContentPlaceholderID="PlaceHolderCopyright" runat="server"></
asp:Content
>
- 使用SharePoint Designer在新建的区域中插入一个WebPart。如果希望所有继承自该页面布局的页面上都显示该WebPart,不要把WebPart放在WebPartZone里,直接放在该区域内即可。
参考资料
Working with SharePoint 2010 Foundation Master Pages
Quick Overview of Master Pages in SharePoint 2010
Starter Master Pages for SharePoint 2010
Randy Drisgill SharePoint Branding Blog
Default Master Pages in SharePoint Foundation
Upgrading a Master Page to a SharePoint 2010 Foundation Master Page
SharePoint Branding & Design Blog
使用SharePoint 2010 母版页的更多相关文章
- 在SharePoint 2010 母版页里添加自定义用户控件
在SharePoint 2010 母版页里添加自定义用户控件(译) 使用自定义用户控件的好处: 1.容易部署:2.易于控制显示或隐藏. (在使用的过程中)可能要面对的问题是:如何在用户控件里使用Sha ...
- SharePoint 2010 母版页定制小思路介绍
转:http://tech.ddvip.com/2013-11/1384521515206064.html 介绍:我们使用SharePoint2010做门户网站,经常需要定制母版页,但是2010提供的 ...
- SharePoint 2010 母版页制作的简单介绍
转:http://www.cnblogs.com/jianyus/archive/2012/01/11/2319621.html 1. 首先打开SharePoint Designer 2010,找到 ...
- 使用SharePoint 2010的母版页
转:http://tanyanbo2.blog.163.com/blog/static/97339159201111591458902/ SharePoint 2010母版页所用的还是ASP.NET ...
- SharePoint 2010自定义母版页小技巧——JavaScript和CSS引用
通常在我们的项目中,都会涉及到母版页的定制.并且必不可少的,需要配合以一套自己的JavaScript框架和CSS样式.你有没有遇到过这样的情况呢,在开发环境和UAT时都还算顺利,但是当最终部署到生产服 ...
- SharePoint 2010 站点附加数据升级到SP2013
首先,去SharePoint 2010的数据库服务器上,找到站点的数据库,备份.还原到SharePoint 2013环境中: 如果不知道数据库服务器是哪台,可以通过服务器场上的服务器查看: 如果不知道 ...
- sharepoint 2010 页面刷新时滚动条位置保持不变 Controlling scrollbar position on postback
sharepoint 2010 页面刷新时滚动条位置保持不变 Controlling scrollbar position on postback在sharepoint 2010中,如果当前页面的篇幅 ...
- 更改SharePoint 2010 顶部导航为下拉菜单样式
更改SharePoint 2010 顶部导航为下拉菜单样式 最后的效果图: 假如一个网站集顶级站点下面有子网站:sub site1,该子站点下面又有两个子站点:sub site1_1,sub si ...
- Sharepoint 2010 根据用户权限隐藏Ribbon菜单(利用css)
本文介绍的是根据用户权限隐藏整个Ribbon菜单项. 操作环境:Windows Server 2008 r2+ SharePoint 2010 1.关于SharePoint 权限详细请参考:http ...
随机推荐
- jsp日期插件My97DatePicker
jsp日期插件My97DatePicker 强大的日期控件 使用方便简单 (2010-10-30 18:59:12) 转载▼ 标签: js javascript 日期插件 jsp it 分类: jqu ...
- PHP数组处理函数的使用array_reduce(二)
关于PHP数组操作函数更为细致的用法大家还可以参考PHP在线参考手册:http://php.net/manual/zh/index.php array_reduce — 用回调函数迭代地将数组简化为单 ...
- web.config中customErrors与httpErrors的区别
打开IIS,我们发现会有两个处理错误页的地方,见下图: 进行不同的设置之后,我们发现设定结果会反应在web.config: .NET Error Pages设定被写入system.web/custom ...
- Gradle笔记——Gradle的简介与安装
本博客对Gradle进行一个简单的介绍,以及它的安装. Gradle介绍 Gradle是一个基于JVM的构建工具,它提供了: 像Ant一样,通用灵活的构建工具 可以切换的,基于约定的构建框架 强大的多 ...
- ng-repeat指令使用详解
ng-repeat指令使用详解 link: function(scope,element,attr) scope.$index: if(scope.$last == true){} attr['mng ...
- Coding上传项目步骤
step1:在coding上面创建一个项目mybokestep2:在git 命令台中进入项目的根目录下面,使用git init创建.git文件夹和.gitigonre文件,帮组本地与远程的链接step ...
- fedora各个版本的下载地址archive
archive: ['a:kaiv] she went to the city archive this morning. ==================== === fedora 的下载地址是 ...
- linux的多媒体 播放 软件版权问题
linux下基本很多 跟多媒体 相关的软件, 都是有版权的, 都是 第三方软件, 都是closed-resource的 都有版权问题, 因此, 几乎所有的 linux的 发行版 都不会带有 多媒体软件 ...
- 【CISP笔记】安全攻击与防护
公开信息收集-搜索引擎 快速定位Google 搜索“5sf67.jsp”可以找到存在此脚本的Web网站Google 搜索“teweb/default.htm”就可找到开放着远程Web连接的服务器信息挖 ...
- BSA基础数据维护
平台 BSA基础数据维护 .扇区五个字段的内容 本来值为0,经过107上计算解析,得出正常的数值.然后106上报(200050),得到回复(200051). 查看回复数据,是否有错误.比如提示104 ...