使用SharePoint 2010的母版页
转:http://tanyanbo2.blog.163.com/blog/static/97339159201111591458902/
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控件会显示在这一区域,但如果需要也可以将其移到功能区外面。
步骤
复制并粘贴下面的代码到你的母版页。
|
|
<div id="s4-ribbonrow"class="s4-pr s4-ribbonrowhidetitle"><divid="s4-ribboncont"><SharePoint:SPRibbonrunat="server"PlaceholderElementId="RibbonContainer"CssFile=""><SharePoint:SPRibbonPeripheralContentrunat="server"Location="TabRowLeft"CssClass="ms-siteactionscontainer s4-notdlg"><spanstyle="background-color: rgb(255, 255, 153);"> <%-- 在这里插入网站操作菜单 --%> </span></SharePoint:SPRibbonPeripheralContent><spanstyle="background-color: rgb(255, 255, 153);"><%-- 在这里插入全局导航 --%></span><SharePoint:SPRibbonPeripheralContentrunat="server"Location="TabRowRight"ID="RibbonTabRowRight"CssClass="s4-trc-container s4-notdlg"><spanstyle="background-color: rgb(255, 255, 153);"><%-- 在这里插入右上角的控件 --%> </span></SharePoint:SPRibbonPeripheralContent></SharePoint:SPRibbon></div><divid="notificationArea"class="s4-noti"><spanstyle="background-color: rgb(255, 255, 153);"><%-- 通知内容将出现在这个div里 --%></span></div><asp:ContentPlaceHolderID="SPNavigation"runat="server"><SharePoint:DelegateControlrunat="server"ControlId="PublishingConsole"></SharePoint:DelegateControl></asp:ContentPlaceHolder><divid="WebPartAdderUpdatePanelContainer"><asp:UpdatePanelID="WebPartAdderUpdatePanel"UpdateMode="Conditional"ChildrenAsTriggers="false” runat="server"><ContentTemplate><WebPartPages:WebPartAdderID="WebPartAdder"runat="server"/> </ContentTemplate><Triggers><asp:PostBackTriggerControlID="WebPartAdder"/> </Triggers></asp:UpdatePanel></div></div> |
页面滚动时固定功能区
在母版页上进行以下更改,以保证页面内容滚动时不会影响功能区的使用。
- 将页面内容部分移动到下面的div内
<divid="s4-workspace"><div
id="s4-bodyContainer">内容</div></div>如果您的页面是固定宽度的,添加 s4-nosetwidth类到s4-workspace div里。
<divID="s4-workspace"
class="s4-nosetwidth"> - 将标题区域移动到如下id的div里。
<divid="s4-titlerow">标题区</div> - 更新body标记和CSS规则,使其不滚动。 Body标记和规则将类似于下面这样:
<bodyscroll="no"
...>主体内容</body>
将控件添加到母版页
有一组控件是SharePont功能必须的,包括:SPPageManager, ScriptManager和
ScriptLink。
将这些控件添加到您的母版页
- 打开您的母版页文件。
- 复制并粘贴以下代码,以便添加ScriptManager控件。必须放在form标记内,并且在功能区前面。
<asp:ScriptManager
id="ScriptManager"
runat="server"
EnablePageMethods="false"
EnablePartialRendering="true"
EnableScriptGlobalization="false"
EnableScriptLocalization="true"
/> - 复制并粘贴以下代码,以便添加SPPageManager控件。 必须放在head标记内。
<SharePoint:SPPageManager
runat="server"
/> - 复制并粘贴以下代码,以便添加ScriptLink控件。必须放在head标记内。
<SharePoint:ScriptLink
defer="true"
runat="server"/> - 保存您的母版页文件。
防止某些区域在模式窗口中显示
- 网站使用了自定义的系统母版页(通常与发布页面用的母版页相同)。
- 自定义母版页中在模式窗口中应隐藏的区域对应的标记遗漏了s4-notdlg类。
|
|
<div class=”cccontent”>你的内容 </div> |
|
|
<div class=”cccontent s4-notdlg”>你的内容 </div> |
添加一个Placeholder以便在母版页中使用Web部件
在SharePoint Designer 2010中的步骤
- 在你的自定义母版页中添加一个唯一命名的内容占位符。例如:
<asp:ContentPlaceHolder
id="PlaceHolderCopyright"
runat="server"/> - 在页面布局中的为该占位符插入自定义内容
<asp:Content
ContentPlaceholderID="PlaceHolderCopyright"
runat="server"></asp:Content> - 使用SharePoint Designer在新建的区域中插入一个WebPart。如果希望所有继承自该页面布局的页面上都显示该WebPart,不要把WebPart放在WebPartZone里,直接放在该区域内即可。
使用SharePoint 2010的母版页的更多相关文章
- SharePoint 2010自定义母版页小技巧——JavaScript和CSS引用
通常在我们的项目中,都会涉及到母版页的定制.并且必不可少的,需要配合以一套自己的JavaScript框架和CSS样式.你有没有遇到过这样的情况呢,在开发环境和UAT时都还算顺利,但是当最终部署到生产服 ...
- 使用SharePoint 2010 母版页
SharePoint 2010母版页所用的还是ASP.NET 2.0中的技术.通过该功能,实现了页面框架布局与实际内容的分离.虽然在本质上自定义母版页的过程和以前版本的SharePoint大致相同,但 ...
- SharePoint 2010 站点附加数据升级到SP2013
首先,去SharePoint 2010的数据库服务器上,找到站点的数据库,备份.还原到SharePoint 2013环境中: 如果不知道数据库服务器是哪台,可以通过服务器场上的服务器查看: 如果不知道 ...
- 在SharePoint 2010 母版页里添加自定义用户控件
在SharePoint 2010 母版页里添加自定义用户控件(译) 使用自定义用户控件的好处: 1.容易部署:2.易于控制显示或隐藏. (在使用的过程中)可能要面对的问题是:如何在用户控件里使用Sha ...
- 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 ...
- SharePoint 2010顶部链接导航栏的详细操作
转:http://www.360sps.com/Item/UseTopLink.aspx 在SharePoint 2010环境的页面中,导航链接总体上可以分为两类,一类是显示在左侧的快速启动栏,另一类 ...
- 自定义和扩展 SharePoint 2010 Server 功能区
了解构成 SharePoint 2010 服务器功能区的组件以及如何通过演练两个功能区自定义项方案来自定义功能区. 适用范围: Microsoft SharePoint Foundation 2010 ...
随机推荐
- iOS5编程--ARC在工程上的相关设置
在创建工程的时候,我们可以指定工程是否使用ARC技术,如下图 选中表示支持ARC, 在Beta5以前的版本中,不提供这个选项,非常麻烦. 如果是你拿到的工程,那么可以通过设置来改变,如下图所示 如果不 ...
- 域名的a记录转过来他的公网ip
首先 客户要我把域名 和项目进行绑定客户需要提供万网或者新网的账户,登进去域名管理 选项域名管理的A记录定向到那个公网ip上 与服务器做绑定然后 在服务器的iis 上 加个主机头 输入主机头名称 也 ...
- linux学习笔记(1)-文件处理相关命令
列出文件和目录 ls (list) #ls 在终端里键入ls,并回车,就会列出当前目录的文件和目录,但是不包括隐藏文件和目录 #ls -a 列出当前目录的所有文件 #ls -al 列出当前目的所有文件 ...
- 2002: [Hnoi2010]Bounce 弹飞绵羊 - BZOJ
Description 某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏.游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置 ...
- js按钮点击展开收起
$('.tab').click(function(){ var index = $('.tab').index(this), //缓存第一次点击的li的索引值 ele = $(this).find(' ...
- 团体程序设计天梯赛-练习集L2-008. 最长对称子串
L2-008. 最长对称子串 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 对给定的字符串,本题要求你输出最长对称子串的长度. ...
- Python中pass语句的作用
http://mianshi.fenzhi.com/post/1529.html pass语句什么也不做,一般作为占位符或者创建占位程序,pass语句不会执行任何操作,比如:while False:p ...
- Amzon MWS API开发之订单接口
Amazon订单接口是Amazon MWS 开发接口中的一大块,我们可以通过接口调用来获得订单数据. 在调用接口之前,首先我们要获得相关店铺商家的店铺密钥等信息.如下: 在此我将所有信息定义在一个类中 ...
- UIcollectionView的使用(首页的搭建2)
2.2 直接购买的UIcollectionCell 2.2.1创建CFPromptBuyCell,继承自UICollectionViewCell,定义了标题和图片两个属性 2.2.2 在.m文件中定义 ...
- [Unity菜鸟] 摄像机视角控制
1. 摄像机预览物体 上下左右远近 把CameraFollow脚本赋给Camera,把要观察的对象赋给target using UnityEngine; using System.Collection ...