首页 > 代码库 > 添加功能区按钮到SP2010某一列表或库

添加功能区按钮到SP2010某一列表或库

添加功能区按钮到SP2010某一列表或库

        有时候你需要给列表/库的功能区天假期新按钮--没有什么比这更简单的了。你只需要新建一个SP项目,添加一个feature,添加一个空白元素,编辑它的Elements.xml文件。
        大多说时候它看起来像这样:
        Elements.xml:
<?xml version="1.0" encoding="utf-8"?>
 <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
 
<CustomAction
 Id="{41C23DD2-6FEB-4636-AE4F-41B8E2A2D415}"
<strong> RegistrationId="100"</strong>
<strong> RegistrationType="List"</strong>
 Location="CommandUI.Ribbon"
 Sequence="5"
 Title="Custom Lists Button">
 
<CommandUIExtension>
 <CommandUIDefinitions>
 <CommandUIDefinition Location="Ribbon.List.Settings.Controls._children">
 <Button
 Id="{09A51440-C3A6-4103-874A-383747042E75}"
 Alt="Custom Lists Button"
 Sequence="5"
 Command="{42844423-382B-4e87-BEC4-34B0601DA98F}"
 Image32by32="/_layouts/images/menulistsettings.gif"
 Image16by16="/_layouts/images/itdcl.gif"
 LabelText="Custom Lists Button"
 TemplateAlias="o1" />
 </CommandUIDefinition>
 </CommandUIDefinitions>
 
<CommandUIHandlers>
 <CommandUIHandler
 Command="{42844423-382B-4e87-BEC4-34B0601DA98F}"
 EnabledScript=""
 CommandAction="javascript: alert('Custom Lists Button!');" />
 </CommandUIHandlers>
 
</CommandUIExtension>
 </CustomAction>
</Elements>
        部署解决方案,激活feature结果是:

        这个方法的缺点是按钮会出现在每个现有自定义列表中,就算你新建自定义列表也会出现。原因是RegistrationId="100"。这里100是自定义列表的类型。如果要给某个列表实例提供按钮的话,你可以使用一下方法:

创建列表定义并分配RegistrationId到列表定义的Type

        首先需要新创建列表定义:

        打开列表定义的Elements.xml,复制Type值:

        粘贴该值到按钮的Elements.xml中RegistrationId:
<CustomAction
Id="{67A1EB46-A49B-4aff-B456-068909C39599}"
RegistrationId="10000"
RegistrationType="List"
Location="CommandUI.Ribbon"
Sequence="5"
Title="List Definition Button">

<CommandUIExtension>
 <CommandUIDefinitions>
 <CommandUIDefinition Location="Ribbon.List.Settings.Controls._children">
 <Button
 Id="{3F083F8B-95D6-436b-A130-3EF1E8C04E3C}"
 Alt="List Definition Button"
 Sequence="5"
 Command="{AF90D558-00DA-4ccf-B4F4-169CD9162CD0}"
 Image32by32="/_layouts/images/menulistsettings.gif"
 Image16by16="/_layouts/images/itdcl.gif"
 LabelText="List Definition Button"
 TemplateAlias="o1" />
 </CommandUIDefinition>
 </CommandUIDefinitions>

<CommandUIHandlers>
 <CommandUIHandler
 Command="{AF90D558-00DA-4ccf-B4F4-169CD9162CD0}"
 EnabledScript=""
 CommandAction="javascript: alert('List Definition Button!');" />
 </CommandUIHandlers>

</CommandUIExtension>
 </CustomAction>
         最后,添加列表定义到feature,这样它能随着解决方案一起部署:
        激活feature后,你应该可以给予新建列表定义创建新的列表:

        当你