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

这是我的特定情况...我有一个列表,当用户查看时,我希望能够删除某些按钮。同样取决于用户是否是管理员,这些按钮是否应该显示...当前,我已经能够使用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>


如果缺少任何详细信息或我没有正确解释自己,请告诉我,我将进行更新!

最佳答案

据我了解,您只是想在某个特殊的列表/页面中隐藏“网站操作”菜单中的操作。

开箱即用,这是行不通的。 HideCustomAction元素根本不提供“仅当用户在页面XYZ上时才隐藏”。它是隐藏操作还是不隐藏操作-适用于所有地方的所有用户。尤其是在谈论站点操作菜单时(顾名思义),该菜单在整个站点范围内。

您要做的唯一选择是仅对某些用户隐藏菜单项以及仅对某些页面隐藏菜单项,这是使用JavaScript(或服务器端代码)。使用JavaScript,您必须搜索菜单项并在适用逻辑的情况下将其隐藏。

关于c# - Sharepoint自定义操作以删除“网站操作”菜单项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15117889/

10-13 07:58
查看更多