特定Sharepoint列表的自定义操作菜单

时间:2010-01-04 13:50:43

标签: sharepoint sharepoint-2007

我想将自定义操作菜单应用于特定列表;目前使用以下XML指定它并将其应用于所有列表!

更具体地说;我甚至希望将此自定义操作应用于特定列表的特定视图...

<CustomAction
    Id="MyCustomActionId"
    Title="My Custom Action"
    Description="My Custom Action Description"
    RequireSiteAdministrator="FALSE"
    RegistrationType="List"
    GroupId="ActionsMenu"
    Sequence="1000"
    Location="Microsoft.SharePoint.StandardMenu" >
    <UrlAction Url="{SiteUrl}/_layouts/MySharepointArtifacts/MyCustomAction.aspx?ListId={ListId}"/>
  </CustomAction>

我该怎么做?

2 个答案:

答案 0 :(得分:9)

蠕动内容类型(基于您要在其上创建ECB菜单的项目)并将内容类型添加到列表中。创建customAction并将其注册到内容类型。 ECB菜单将仅显示添加内容类型的列表中给定内容类型的项目。

以下是基于文档内容类型构建的内容类型:

    <?xml version="1.0" encoding="utf-8"?>
<Elements Id="f55bc095-86f5-4c0a-961e-0e8f8e6c50ed" xmlns="http://schemas.microsoft.com/sharepoint/">
  <ContentType ID="0x0101002936a05e70da4cf2a6846c669da7fdb6"
               Name="CTName"
               Group="CT group Name"
               Description="CT description"
               Version="0">
    <FieldRefs>...

为内容类型创建自定义操作(引用内容类型ID):

    <CustomAction
        Id="MyCustomActionId"
        Title="My Custom Action"
        Description="My Custom Action Description"
        RequireSiteAdministrator="FALSE"
        RegistrationType="ContentType"
RegistrationId="0x0101002936a05e70da4cf2a6846c669da7fdb6"
        GroupId="ActionsMenu"
        Sequence="1000"
        Location="EditControlBlock" >
        <UrlAction Url="{SiteUrl}/_layouts/MySharepointArtifacts/MyCustomAction.aspx?ListId={ListId}"/>
      </CustomAction>

答案 1 :(得分:1)

将customActions定位到特定列表并不容易。我发现的一个非常小的描述是:http://www.dotnetprodigy.com/2009/01/how-to-create-custom-action-specific-to.html(另一个在这里:http://mnish.blogspot.com/2009/04/create-custom-action-specific-to-list.html