Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在SharePoint中动态显示“编辑控制块”菜单项_Javascript_Sharepoint_Moss_Document Library - Fatal编程技术网

Javascript 在SharePoint中动态显示“编辑控制块”菜单项

Javascript 在SharePoint中动态显示“编辑控制块”菜单项,javascript,sharepoint,moss,document-library,Javascript,Sharepoint,Moss,Document Library,我正在尝试在SharePoint 2007中设置每项动态菜单(编辑控制块)。我的目标是根据当前用户的组成员资格提供某些功能 我知道控制此菜单项创建的CustomAction标记具有Rights属性。我遇到的问题是,我使用的组在站点中具有相同的权限(ViewListItems、ManageAlerts等)。我们设置的组更多地处理功能,例如经理、员工等。我们希望能够将自定义功能分配给组,并使与该功能关联的菜单项仅对该组的成员可见。每个人都有相同的基本站点权限,但根据其登录凭据,将有额外的可用选项 我

我正在尝试在SharePoint 2007中设置每项动态菜单(编辑控制块)。我的目标是根据当前用户的组成员资格提供某些功能

我知道控制此菜单项创建的CustomAction标记具有Rights属性。我遇到的问题是,我使用的组在站点中具有相同的权限(ViewListItems、ManageAlerts等)。我们设置的组更多地处理功能,例如经理、员工等。我们希望能够将自定义功能分配给组,并使与该功能关联的菜单项仅对该组的成员可见。每个人都有相同的基本站点权限,但根据其登录凭据,将有额外的可用选项

我看过几篇关于修改Core.js文件以隐藏上下文菜单中的项的文章,但它们是一种要么全有,要么全无的方法。在上有一篇有趣的文章,展示了如何动态修改Actions菜单。修改此示例以检查用户组并基于成员身份显示或隐藏菜单是很简单的。不幸的是,这个例子似乎不适用于上下文菜单项,如这里所证明的


有人知道不使用javascript的方法吗?如果没有,从javascript检查用户组的最佳方法是什么?

可以实现两种不同的javascript函数,用于将菜单项动态添加到列表项下拉列表中。Core.js(C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS\1033\Core.js)在为选定列表项生成菜单项时检查是否存在这些方法。“Custom_AddDocLibMenuItems”和“Custom_AddListMenuItems”是Javascript方法的名称

我认为您可以使用一篇文章来解决您的特定问题,即基于用户角色成员身份的动态菜单项自定义,可以在这里找到:

(注意,对于任何列表类型,过程都完全相同)

本文概述了如何执行服务器端代码来定义将显示的菜单项:

[…]在更复杂的情况下,您必须从服务器检索可用命令的列表,因为只有在那里您才能运行业务逻辑,并可能从自定义数据库获取命令。通常,如果要实现一个工作流解决方案,其中每个文档都有自己的流程状态以及与之关联的命令,则需要执行此操作

这种情况的解决方案是让自定义\u AddDocLibMenuItems动态调用自定义ASP.NET页面。此页面获取文档库的ID和查询字符串上的特定项,并返回一个XML字符串,其中包含可用于该特定文档的命令的所有信息。这些命令根据文档的流程状态(或某些其他自定义业务逻辑)可用。[……]


不幸的是,如果不使用javascript,这是不可能实现的。ECB不呈现定义为自定义操作的服务器控件(与SiteActions等不同)

要了解如何使用Javascript实现这一点,请参阅以下文章:

如果该问题的标题是“动态修改SharePoint中的列表项下拉菜单”,则该问题的标题更合适。。。版主可以更新吗?