前言:在SharePoint中,我们常见的操作就是添加我们的自定义BCD菜单,下面,简单介绍下添加自定义BCD菜单的操作。主要介绍两种熟悉的方法,一种通过xml方式,另一种是通过js的方式。

  环境SharePoint 2010 Server,理论上2007和2013也会支持,不过我没有进行测试。

方法一、通过Xml方式(图比较多,不过我不是贴图党)

1、 新建一个空的项目,如下图。

2、选择场的解决方案,测试地址选择你需要的测试地址即可。

3、在Features上面,右键添加新的Feature,用于我们的Xml文件。

4、修改我们Feature的名字,说明和范围等Feature的属性,方便以后我们进行操作。

5、添加一个空元素,用来添写我们的xml。

6、添加我们的xml文件,注意ID为Guid,最好重新生成一个。

7、Xml文件格式,如下。

<?xml version="1.0" encoding="utf-8"?>

<Elements xmlns="http://schemas.microsoft.com/sharepoint/">

<CustomAction Id="{16d0fc49-3039-40ea-a887-d05a7ff9bb21}"

RegistrationId="101"

RegistrationType="List"

Location="EditControlBlock"

Title="测试BCD菜单"

GroupId="ActionsMenu"

Sequence="100" ImageUrl="/_layouts/images/DOC16.gif">

<UrlAction Url="{SiteUrl}/_layouts/Viewlsts.aspx"/>

</CustomAction>

</Elements>

8、Xml项添加到Feature中去,这个添加了xml以后会自动添加到Feature中,我想说的是Feature激活xml功能的原理。

9、部署我们写好的解决方案到测试站点,SharePoint 2010中的VS会自动激活这个解决方案。

10、去网站功能,看看我们部署的Feature,已经被激活了。因为我们是web范围的,所以是网站功能中;可以试试site范围的,就需要去网站集功能里面看看了。

11、看看我们添加BCD菜单的效果

方法二 通过JS脚本的方式。

1、通过spd打开我们需要扩展BCD菜单的页面,添加我们写好的js,最后在介绍这样操作的原理

2、js文件如下,当然,js操作不仅仅可以完成现在这样的单级菜单,还可以完成二级菜单等,有需要的可以查找相关资料自己研究下。

<script language="javascript">

function Custom_AddListMenuItems(m, ctx)

{

strDisplayText = "百度首页";

strAction = "STSNavigate('http://www.baidu.com')";

strImagePath=ctx.imagesPath+"oisweb.gif";

menuOption = CAMOpt(m,strDisplayText,strAction,strImagePath);

menuOption.id = "ID_MyMenu";

return false;

}

</script>

3、看看我们添加js文件后的效果(我不是百度的广告贴,只是习惯这样,⊙﹏⊙b汗)点击以后会连接到百度首页。

4、原理介绍:其实sharepoint本身的BCD菜单,就是通过js脚本实现的,有兴趣的可以打开下图所示位置,layouts/2052(中文版位置)下的core.js文件,sharepoint 的BCD菜单,就是调用下面js里面的方法,我们也依照SharePoint的模式,去调用下面的方法即可完成我们想要的效果。

  总结:我们完成一件事儿,可以有很多方法,相对来说,第一种方法批量添加Library菜单比较方便,而第二种方法,更灵活,也适合单独列表的个性化定制。当然,介绍的内容比较简单。

SharePoint 添加BCD菜单的更多相关文章

  1. 每日学习心得:SharePoint 2013 自定义列表项添加Callout菜单项、文档关注、SharePoint服务端对象模型查询

    前言: 前一段时间一直都比较忙,没有什么时间进行总结,刚好节前项目上线,同时趁着放假可以好好的对之前遇到的一些问题进行总结.主要内容有使用SharePoint服务端对象模型进行查询.为SharePoi ...

  2. SharePoint 2013 添加Ribbon菜单

    原文:SharePoint 2013 添加Ribbon菜单 前言:今天,我们尝试一下添加SharePoint2013的Ribbon菜单,这个Ribbon菜单是由XML定义,JavaScript脚本来实 ...

  3. pyqt5-为QListWidget添加右键菜单

    如何在pyqt5下为QListWidget添加右键菜单? 能百度到的均是pyqt4下的,有些貌似并不好用. 在尝试了很多方法后,下面贴出可用的方法: from PyQt4 import QtCore, ...

  4. 添加右键菜单命令 在此处打开命令窗口(E)(带图标)

    @color 0A @title 添加右键菜单命令 在此处打开命令窗口(^&E)(带图标) by wjshan0808 @echo off reg add HKCR\Directory\Bac ...

  5. RCP:为指定的导航器添加上下文菜单

    可以参考Eclipse的Help->Help Content下的: Platform Plug-in Developer Guide > Programmer's Guide > P ...

  6. 仅在TabControl中的Tab中添加右键菜单

    若想实现仅在TabControl中的Tab中添加右键菜单,可在XAML中通过使用样式得到: <TabControl> <TabControl.ItemContainerStyle&g ...

  7. [cb] Unity Editor 添加右键菜单

    需求 为Unity的Editor窗口添加右键菜单 实现代码 // This example shows how to create a context menu inside a custom Edi ...

  8. Netsharp快速入门(之9) 基础档案(工作区3 添加商品菜单,以及在产品中打开商品界面)

    作者:秋时 杨昶   时间:2014-02-15  转载须说明出处 3.5.2  添加导航菜单 1.打开平台工具,插件和资源节点,选择创建导航菜单,打开创建向导 2.选择所属插件 3.选择在哪个分类下 ...

  9. Arcengine 二次开发添加右键菜单

    最近在搞arcengine 二次开发,遇到了好多问题,也通过网上查资料试着慢慢解决了,把解决的步骤记录下来,有需要帮助的可以看一下,也欢迎各位来批评指正. 想给自己的map application在图 ...

随机推荐

  1. 指令汇B新闻客户端开发(四) 自动轮播条

    在这个新闻客户端,我们可以看到有一个轮播页面,在这个项目中,用Handler和一个定时器来做更容易一些, 我们定义一个Handler: private Handler mHandler; 定时器的代码 ...

  2. 18 Ui美化 剪切动画clip

    输入0 - 10000 让图片根据数值显示部分图片 在工程文件的res/drawable/新建clip文件 <?xml version="1.0" encoding=&quo ...

  3. 【编程练习】poj1068

    Parencodings Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 24202   Accepted: 14201 De ...

  4. UNIX网络编程——客户/服务器程序设计示范(四)

        TCP预先派生子进程服务器程序,accept使用线程上锁保护 我们使用线程上锁保护accept,因为这种方法不仅适用于同一进程内各线程之间的上锁,而且适用于不同进程之间的上锁.        ...

  5. Oracle采购模块中的多组织访问控制(MOAC)

     1. 概述 从Release12开始启用多组织访问控制功能,将允许用户在一个单独的职责中访问一个或者多个经营单位(OU-Operation Units)的数据.这个功能允许用户在一个可共享服务的 ...

  6. Android的TabHost组件-android的学习之旅(四十)

    TabHost简介 虽然,官方建议用Fagment取代TabHost,但是我们还是大概的介绍一下.TabHost是一种非常简单的组件,TabHost可以很方便的在窗口放置多个标签页,每一个标签页相当于 ...

  7. Mybatis源码之Statement处理器CallableStatementHandler(六)

    CallableStatementHandler实际就是使用CallableStatement来执行SQL语句,当然它执行的是存储过程. 源码如下: /** * @author Clinton Beg ...

  8. 利用Dijkstra算法实现记录每个结点的所有最短路径

    最近在做PAT时发现图论的一些题目需要对多条最短路径进行筛选,一个直接的解决办法是在发现最短路径的时候就进行判断,选出是否更换路径:另一个通用的方法是先把所有的最短路径记录下来,然后逐个判断.前者具有 ...

  9. pig读取部分列 (全部列中的少部分列)

    pig流式数据,load数据时,不能读入任意列. 但是,可以从头读,只能连续几列.就是前几列.比如10列数据,可以只读前3列.但不能读第3列: 如:数据testdata [wizad@sr104 lm ...

  10. xml作用以及语法

    2 XML作用 2.1 描述带关系的数据(软件的配置文件) web服务器(PC): 学生管理系统 -> 添加学生功能 -> 添加学生页面 -> name=eric&email ...