SharePoint 2013 对象模型操作"网站设置"菜单
在SharePoint的开发中,经常会有客户提到网站操作上的栏目过多,其实,我们除了可以通过Feature的方式添加,还可以通过服务器端对象模型的方式添加;下面,让我用简单的例子,给大家介绍一下;
1、操作SiteAction,添加“Add by Linyu”,隐藏“Site Settings”,效果如下图:

2、我是通过webpart的方式,修改当前页面的菜单,代码截图:
简单说一下,Visible属性是隐藏属性,我们可以设置菜单是否显示;Sequence是菜单在组中的顺序,如果一个group里有多个菜单,会按照这个排序;MenuGroupId是组的Id,我这里设置成1,所以显示在最上面了;
除了这些,AddMenuItem方法里面,还可以设置菜单的权限,具体可以自行尝试一下;

3、完整的代码,方便大家复制粘贴进行试验,如下:
Microsoft.SharePoint.WebControls.SiteActions siteAction =
Microsoft.SharePoint.WebControls.SiteActions.GetCurrent(this.Page);
if (siteAction != null && ribbonCollection.Length > )
{
string[] RibbonID = RibbonCollection.Split(';');
for (int i = ; i < RibbonID.Length; i++)
{
//Hide Site Action
siteAction.GetMenuItem(RibbonID[i]).Visible = false;
} //Add Site Action
siteAction.AddMenuItem("MenuItem_Custom", "Add by Linyu", "", "A test menu",
"/_layouts/15/settings.aspx", "");
siteAction.GetMenuItem("MenuItem_Custom").Sequence = ;
siteAction.GetMenuItem("MenuItem_Custom").MenuGroupId = ;
}
4、查看网站设置菜单Id的小技巧,其实SharePoint很多地方的Id,都是可以这样查找的,我简单的试了一下,发现去掉前缀zz11_即可,Site Settings的Id就是"MenuItem_Settings";

总 结
SharePoint有很多可以定制的地方,我们要做的就是选择合适的方式,争取实现的更加简单、快捷;这里我们可以封装成一个webpart,用来隐藏Ribbon和SiteAction两个菜单,是非常方便的方法。
参考文档
http://www.cnblogs.com/jianyus/p/3877919.html
http://www.cnblogs.com/jianyus/p/3375613.html
SharePoint 2013 对象模型操作"网站设置"菜单的更多相关文章
- BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发者工具 站点设置
BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发者工具 站点设置 你应该熟悉(假设还咩有)的SharePo ...
- SharePoint 2013 报:网站在改进过程中处于只读状态,对此给您带来的不便,我们深表歉意
SharePoint 2013备份过程意外中断,导致再打开站点报:网站在改进过程中处于只读状态,对此给您带来的不便,我们深表歉意 英文:We apologize for any inconvenien ...
- 跟我学SharePoint 2013视频培训课程——网站导航及页面元素(2)
课程简介 第2天,介绍SharePoint 2013 网站导航及页面元素 视频 SharePoint 2013 交流群 41032413
- 如何设置SharePoint 2013 的根网站集下的“更改此术语的目标页面”
起因: 首先看问题截图Figure 1,在术语驱动的页面中设置更改此术语的目标页面,会被警告“该URL 不指向某个页面”,原因是我所找到的这个目标页面是一个非aspx结尾的URL链接. Figure ...
- SharePoint 2013 重命名网站集名称(SharePoint 2013 rename site collection)
最近使用SharePoint中,遇到一个需要重命名网站集的需求,主要是网站用数据库备份/还原的方式,想要改网站集的地址,然后搜了一下PowerShell: $site = Get-SPSite -Id ...
- SharePoint 服务器端对象模型操作用户组(创建/添加/删除)
摘要:几个操作SharePoint用户组的方法,已经测试通过,但是没有提升权限,如果没有权限的人操作,需要提升权限(提权代码附后).大家需要的话,可以参考下,写在这里也给自己留个备份~~ //创建用户 ...
- SharePoint 服务器端对象模型操作文档库(上传/授权/查看权限)
简介:上传文档到文档库,并对项目级授权,查看项目级权限方法 //在列表根目录下创建文件夹 public static string CreatFolderToSPDocLib(stri ...
- 批量修改sharepoint 2013站点里区域设置
cls [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint") foreach ($we ...
- SharePoint 2013 自定义扩展菜单
在对SharePoint进行开发或者功能扩展的时候,经常需要对一些默认的菜单进行扩展,以使我们开发的东西更适合SharePoint本身的样式.SharePoint的各种功能菜单,像网站设置.Ribbo ...
随机推荐
- Maven Android使用一
Maven的坐标包括:groupId.artifactId.version.packaging.classifier. groupId:定义当前maven项目隶属的实际项目: artifactId:定 ...
- 【PRML读书笔记-Chapter1-Introduction】1.3 Model Selection
在训练集上有个好的效果不见得在测试集中效果就好,因为可能存在过拟合(over-fitting)的问题. 如果训练集的数据质量很好,那我们只需对这些有效数据训练处一堆模型,或者对一个模型给定系列的参数值 ...
- hibernate的多对多例子讲解(加图片)
在hibernate中也有多对多的关系.但是这样关系执行的效率不高,所以我们可以通过两个多对1或者两个1对多来实现. 在现实生活中多对多的关系也比较常见.比如说老师和学生.一个老师有多个学生,一个学生 ...
- [Tango] Basic Knowledge
Project Tango类设备能够给开发者在哪些领域带来机会. 室内导航*:室内GPS信号的缺失,使得Project Tango设备会成为室内导航重要应用场景之一.有了它,你就不会在不熟悉的室内商场 ...
- [转载]逐步建设企业DevOps能力
当软件行业进入互联网时代,市场对软件产品和服务的交付提出了更高的要求:不仅要快速实现需求,而且要快速发布上线,并且必须保证业务可靠.高效运行.为了满足这些要求,IT组织需要强有力的流程.技术和人员作为 ...
- python关键字详解
今天依旧在啃:<笨方法学python>,其中习题37是复习各种关键字.我本想百度一下记一下就ok了,但是百度出来第一个就Hongten的博客.我才意识到我也有博客,我应该学习他,把这些积累 ...
- 深度使用react-native的热更新能力,必须知道的一个shell命令
开篇之前,先讲一个自己开发中的一个小插曲: 今天周日,iOS版 App 周一提交,周三审核通过上架,很给力.不过,中午11:30的时候,运营就反应某个页面有一个很明显的问题,页面没法拉到底部,部分信息 ...
- Sprint1(11.20)
Sprint1第一阶段 1.类名:软件工程-第一阶段 2.时间:11.14-11.23 3.选题内容:web版-餐厅到店点餐系统 4.我们详细分析了点餐系统实现的具体功能,分为两种方案: 方案一:此方 ...
- Qt Style Sheet实践(三):QCheckBox和QRadioButton
导读 单选按钮(QRadioButton)和复选框(QCheckBox)是界面设计中的重要元素.单选按钮只允许用户在一组选项中选择一个,且当其中一个被选中的时候,按钮组中的其他单选按钮自动取消.复选框 ...
- NPOI根据模板生成chart图表导出Excel
导入NPOI的全部dll. 因为NPOI的API里面还没有对于Chart图表方面的操作,所以只能根据提示做好的图表作为模板,修改数据源的方法来改变图表. 注意:NPOI要用2003版以下的excel才 ...