在对SharePoint进行开发或者功能扩展的时候,经常需要对一些默认的菜单进行扩展,以使我们开发的东西更适合SharePoint本身的样式。SharePoint的各种功能菜单,像网站设置、Ribbon、列表里的下拉等等,都是一样原理的,都是XML+JS脚本实现的,如果想实现这些功能,只需要一个XML发布成Feature,并在网站功能启用,即可。
其实,关于这个并没有什么过多可以说的东西,大家在实践中,渐渐理解了。下面,我就举几个简单的例子,做一下简要说明。
项目结构
新建一个空白的SharePoint 2013项目,添加一个Feature文件,一个菜单定义的XML文件,如下图。
例五 扩展文档库ECB菜单
扩展后截图
扩展XML
<?xml version="1.0" encoding="utf-8"?> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <CustomAction Id="MyTopMenuLink" Location="EditControlBlock" RegistrationType="List" RegistrationId="101" Sequence="0" Title="博客园-霖雨"> <UrlAction Url="http://www.cnblogs.com/jianyus"/> </CustomAction> </Elements>
如上图,因为Sequence是0,所以这个菜单在最上面,如果想要移动位置,设置这个值即可。
原文地址:http://www.cnblogs.com/jianyus/p/3375613.html再此基础上,可扩展 UrlAction 中的Url,增加参数以满足我们的实际需求。
常用写法为<UrlAction Url="http://www.cnblogs.com/jianyus?ItemId={ItemId}"/>{ItemID}为文档ID。{ItemUrl}为文档地址。{ListId}为文档库ID。{Source}为文档库地址。{SiteUrl}为网站地址。注意:区分大小写。如果要控制该选项只出现在文档后面,而不出现在文件夹后面的话。需要修改RegistrationType="ContentType" RegistrationId="0x0101"例如:<?xml version="1.0" encoding="utf-8"?> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <CustomAction Id="MyTopMenuLink" Location="EditControlBlock" RegistrationType="ContentType" RegistrationId="0x0101" Sequence="0" Title="评论一下"> <UrlAction Url="http://www.baiu.com?SiteUrl={SiteUrl}&ItemUrl={ItemUrl}"/> </CustomAction> </Elements>