Sharepoint自定义操作,用于删除站点操作菜单项

时间:2013-02-27 17:01:25

标签: c# sharepoint sharepoint-2010 custom-action

我一直在寻找如何在网站操作菜单中隐藏两个按钮的时间(新页面和管理网站内容和结构)。

继承我的具体情况......我有一个List,当用户正在查看时,我希望能够删除某些按钮。此外,如果用户是管理员,这些按钮应该显示或不显示...目前我已经能够使用HideCustomActions删除这两个按钮(下面的代码)。隐藏自定义操作的问题在于没有属性可以指定列表或内容类型以使其关闭。此外,CustomActions中没有任何属性只会向管理员显示按钮(我想在下面的CustomActions中执行的示例代码)。

HideCustomActions 代码:

<HideCustomAction
    Id="HideCreatePublishingPage"
    GroupId="SiteActions"
    HideActionId="PublishingSiteActionsMenuCustomizer"
    Location="Microsoft.SharePoint.StandardMenu">
</HideCustomAction>

CustomActions 代码:

<CustomAction
    Id="HideNewPage"
    GroupId="SiteActions"
    Location="Microsoft.SharePoint.StandardMenu"
    RegistrationType="List"
    RegistrationId="10037"
    RequireSiteAdministrator="TRUE">
    <CommandUIExtension>
      <CommandUIDefinitions>
        <CommandUIDefinition Location="WHAT GOES HERE?" /> <!-- PublishingSiteActionsMenuCustomizer should go here but i dont have the id -->
      </CommandUIDefinitions>
    </CommandUIExtension>
</CustomAction>

如果遗失了任何细节,或者我没有正确解释,请告诉我,我会更新!

1 个答案:

答案 0 :(得分:2)

据我了解,您希望在某个特殊列表/页面中隐藏网站操作菜单中的操作。

这不是开箱即用的。 HideCustomAction元素根本不提供“仅当用户在页面XYZ上时隐藏”。无论是隐藏动作还是不隐藏 - 这适用于所有用户。特别是当您谈论网站操作菜单时(如名称所示)网站范围。

您唯一的选择是做您想要的,仅为某些用户隐藏菜单项以及仅在某些页面上隐藏它们是使用JavaScript(或服务器端代码)。使用JavaScript,您必须搜索菜单项并在逻辑适用时隐藏它们。