用javascript自定义SharePoint文档库/列表项菜单

本文转自YCC博客

我们在SharePoint中自定义菜单,通常通过带CustomAction 的Feature来实现,比如隐藏一个菜单:

< HideCustomAction >
  GroupId = "Text"
  HideActionId = "Text"
  Id = "Text"
  Location = "Text">
</ HideCustomAction >
自定义一个菜单:
< CustomAction 
    
Id ="Extend"
   Location
="Microsoft.SharePoint.Administration.ApplicationManagement"
    Sequence
="10"  
    Title
="Extend or upgrade virtual server"  
    Description
="" >
    
< UrlAction  Url ="vslist.aspx?NextPage=extendvsoption.aspx&amp;Show=NeedExtend&amp;Show=NeedUpgrade" />
</ CustomAction >

具体知识请参考SDK或者参考网上的相关文章。
但是。。。。这种方法不是都管用的,比如我要改变文档库或者列表的ListItem的菜单中的某项或者增加删除一个菜单等等,通过这种方法是没有效果的……



这个时候,我们通过javascript来实现就非常容易了,如果您看过core.js的代码就会发现,MS已经给我们预留了自定义的接口来实现我们自己的菜单定义了,MS想的就是周到哇,嘿嘿……
core.js在路径 C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS\下的1033[英文]或者2052[中文]下,我们找到添加文档库/列表菜单的function



看到了吧我们可以自定义实现Custom_AddDocLibMenuItems(文档库) / Custom_AddListMenuItems(列表)来添加我们自己的菜单,具体做法是。。。
1)在我们的页面中加入一个WebPart-内容编辑器部件,然后修改部件属性,最好将部件设置为隐藏的:


然后点击“源编辑器...”,输入我们的自定义javascript脚本来实现我们自己的菜单:
< script language = " javascript " >
function  Custom_AddDocLibMenuItems(m, ctx)
{
    strDisplayText 
= "我的菜单";
    
var rootMenu = CASubM(m,strDisplayText,"","",500);

    strDisplayText 
= "我的菜单还是我的菜单";
    strAction 
= "STSNavigate('http://www.cnblogs.com')";
    strImagePath
=ctx.imagesPath+"oisweb.gif";
    menuOption 
= CAMOpt(rootMenu,strDisplayText,strAction,strImagePath);
    menuOption.id 
= "ID_MySubMenu";
    
return false;
}

</ script >
function里怎么个写法可以参照core.js的写法:)  最后的return false;说明继续执行系统的代码,如果return true的话。。。那整个菜单就一个你自己的菜单项啦。写完后保存,然后退出编辑模式来瞧瞧:



如果要去掉某个菜单,比如WorkFlow之类,我比较笨,用了个笨方法,把他内置的 AddDocLibMenuItems中的脚本copy过来,把要去掉的菜单项给注释掉,然后最后来个return true;呵呵

个人习惯:

转载于:https://www.cnblogs.com/RickyYan/archive/2009/02/18/1392999.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值