特定列表视图的自定义操作 - SharePoint 2010

时间:2011-11-02 15:01:51

标签: sharepoint sharepoint-2010

如何针对特定列表视图定位自定义功能区操作菜单?我希望显示在列表的默认视图中,但要隐藏在其他视图中。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

虽然这个问题已经陈旧但尚未得到答复,但我正在回答这个问题。 在VS2010中创建一个空的Sharepoint项目,在项目中添加一个Elements.xml文件,并在其中包含以下XML。

    <CustomAction Id="MyCustomButton" Sequence="999"
                      GroupId="Manage"
                      Location="CommandUI.Ribbon" // Location to display button
                      RegistrationId="101" // on every list, for  a specific list or library put the GUID of list here e.g. RegistrationId="{GUID_OF_LIST}"
                      RegistrationType="List"
                      Rights="ManageWebs"
                      Title="Custom Document Library Button">
            <CommandUIExtension>
                <CommandUIDefinitions>
                    <CommandUIDefinition Location="Ribbon.Documents.Manage.Controls._children">
                        <Button Id="Ribbon.Documents.Manage.Controls.CustomButton" TemplateAlias="o1"
                                ToolTipDescription="Creates a server side action."
                                ToolTipTitle="SSRibbon" LabelText="SS Action"
                                Image32by32="/_layouts/images/ContractClaims/newproject.jpg"
                                Image16by16="/_layouts/images/ContractClaims/newproject.jpg" Alt="New Project"
                                Command="{3E04C0C1-12DD-449E-905F-7E88EB9E22B1}"
                                Sequence="20"/>
                    </CommandUIDefinition>
                </CommandUIDefinitions>
                <CommandUIHandlers>
                    <CommandUIHandler Command="{3E04C0C1-12DD-449E-905F-7E88EB9E22B1}"

                                     CommandAction="javascript:alert ('Hello World' ) ;" />
                </CommandUIHandlers>
            </CommandUIExtension>
        </CustomAction>

可以找到显示按钮的多个位置here。有关顶部的更多信息,您可以使用相应的XML元素。

答案 1 :(得分:0)

您可以在CommandUIHandler中使用 EnabledScript 参数,您可以在其中输入javascript代码并检查是否已加载特定页面/列表/视图。

link to similar answer

示例:

<CommandUIHandler 
  Command="Ribbon.ListItem.CustomGroup.Controls.BtnSayHello.Command"
  CommandAction="javascript:alert('Hello');"
  EnabledScript="javascript:
    function isEnable(){
      if(location.href.indexOf('AllItems.aspx') > 0){
        return true;
      }
      return false;
    }
    isEnable();"
/>