如何使用VS创建SharePoint自定义Ribbon菜单(图文和代码)

如何使用VS创建SharePoint自定义Ribbon菜单

SharePoint Ribbon菜单

如何使用VS创建SharePoint自定义Ribbon菜单(图文和代码)_第1张图片

SharePoint 2010为我们带来了很多新功能,这些新功能使得SharePoint更像是一个Office客户端应用程序,这无疑是令人振奋的。提到Office就不能不
提到Office 2007带来的Ribbon,Ribbon的出现彻底改变了以往Office客户端的操作方式,初用时或许会觉得不习惯,但时间长了就会发现确实是非常好

第一步:创建Feature

我们首先要做的就是定义一个Feature文件,目前来看在2010中Feature的写法与2007中还是一样的。
导航到C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\FEATURES,先建立一个文件
夹,名字可以叫“CustomRibbonButton”,随后在其中添加一个Feature.xml文件。


代码

Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1 <?xml version="1.0" encoding="utf-8" ?>
<Feature Id="A8DA4BE9-8F82-4E94-9723-D51E8B5D683E"
  Title="CustomRibbonButton"
  Description="CustomRibbonButton"
  Version="1.0.0.0"
  Scope="Web"
  xmlns="http://schemas.microsoft.com/sharepoint/">
  <ElementManifests>
    <ElementManifest Location="CustomRibbonButton.xml" />
  </ElementManifests>
</Feature>

第二步:创建支持文件
与SharePoint 2007一样,我们还需要创建一个Feature的支持文件,这个文件中包含了按钮的现实方式,点击后的事件等等信息。
下面有一些地方需要注意,首先在第6行里需要指定我们这个按钮将关联的列表或项内容类型的标识符,现在来看与2007时的还一样。
另外一点就是第9行的“Sequence” 属性,这个属性指定了我们要添加的按钮所在组中的位置。
接着往下看,第14行的“Location” 属性,这里指定了这个按钮应该被添加到哪个Tab下的哪个组中。

代码

Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1 <Elements xmlns="http://schemas.microsoft.com/sharepoint/">

  <CustomAction
    
    Id="CustomRibbonButton"
    RegistrationId="101"
    RegistrationType="List"
    Location="CommandUI.Ribbon"
    Sequence="5"
    Title="Move Documents">

    <CommandUIExtension>
      <CommandUIDefinitions>
        <CommandUIDefinition Location="Ribbon.Documents.Manage.Controls._children">
          <Button
              Id="Ribbon.Documents.New.TestButton"
              Alt="Move Documents"
              Sequence="5"
              Command="Test_Button"
              Image32by32="/_layouts/images/CustomRibbon/network32.GIF"
              Image16by16="/_layouts/images/CustomRibbon/network16.GIF"              
              LabelText="Move Documents"
              TemplateAlias="o1" />
        </CommandUIDefinition>
      </CommandUIDefinitions>

      <CommandUIHandlers>
        <CommandUIHandler
          Command="Test_Button"
          CommandAction="javascript:alert('Welcome To SharePoint 2010 !');" />
      </CommandUIHandlers>

    </CommandUIExtension>
  </CustomAction>

</Elements>

其格式为:Ribbon.[Tab].[Group].Controls._children下面第19行,“Command” 属性,这个属性将“CommandUIDefinition” 与“CommandUIHandler” 关联起来。
第23行“TemplateAlias” 属性,定义了这个按钮在页面中是32X32还是16X16,“o1”是32,“o2”是16。
最后再来看下“CommandUIHandler” 部分,第29行的“Command” 属性与第19行的“Command” 相对应,以将Button与其操作关联起来。
最重要的是30行的“CommandAction” 标记,在这个标记中我们将定义按钮被按下时将要执行的Javascript脚本。SharePoint 2010为我

们提供了丰富的Javascript API,通过这些API我们可以做更多的事情。

如何使用VS创建SharePoint自定义Ribbon菜单(图文和代码)_第2张图片

第三步:部署在SharePoint 2010中我们可以通过PowerShell更方便的部署应用了,打开SharePoint 2010管理控制台,依次执行下面两条命令
Install-SPFeature FeatureFolderName
Enable-SPFeature FeatureFolderName –Url http://server/site/subsite

图文部分,下面用图片说一下,以便不过脑子就能搞定。


如何使用VS创建SharePoint自定义Ribbon菜单(图文和代码)_第3张图片

SharePont 2010里允许你自定Ribbon菜单,下面开始介绍:

  SharePoint 2010中的Ribbon可以进行定制开发,通过使用XML和JavaScript。其中,XML定义了Ribbon中的控件,JavaScript脚本实现了Ribbon的功能,在SharePoint Foundation 2010中。Ribbon通过前台脚本来实现对应的功能,我们可以添加Ribbon、替换或删除已有的Ribbon,我将使用Visual Studio 2010创建一个非常简单的Ribbon,点击弹出“Hello Ribbon!”。
    首先,在Visual Studio 2010中创建一个“空白SharePoint项目”,我把它命名成“TestRibbon”:

如何使用VS创建SharePoint自定义Ribbon菜单(图文和代码)_第4张图片

选择部署为场解决方案
然后右击项目名TestRibbon,选择添加--新建项,添加一个Empty Element,这里采用默认名字EmptyElement1



将新添的EmptyElement1中的Element.xml文件更新为如下内容:

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
        <CustomAction Id="Ribbon.CustomGroup" RegistrationId="101" RegistrationType="List" Title="New Ribbon Button"
                Location="CommandUI.Ribbon">
                <CommandUIExtension>
                        <CommandUIDefinitions>
                                <CommandUIDefinition
          Location="Ribbon.Documents.New.Controls._children">
                                        <Button Id="Ribbon.Documents.New.MyButton"
                                          Command="MyButtonCommand"
                                          Image32by32="/_layouts/images/PPEOPLE.GIF"
                                          LabelText="Hello Ribbon"
                                          TemplateAlias="o2" />
                                </CommandUIDefinition>                               
                        </CommandUIDefinitions>
                        <CommandUIHandlers>
                                <CommandUIHandler
          Command="MyButtonCommand"
          CommandAction="javascript:alert('Hello,Ribbon!');" />
                        </CommandUIHandlers>
                </CommandUIExtension>
        </CustomAction>
</Elements>
在上面的XML中,<CommandUIDefinitions>节点定义了Ribbon的位置及Ribbon中的控件,<CommandUIDefinitions>节点实现了Ribbon的功能,二者通过Command属性进行关联,功能非常简单,弹出一”Hello,Ribbon!”对话框,在CommandUIDefinition中定义了Ribbon的位置,Ribbon.Documents.New即Documents标签New组下,Button控件定义了它显示的文字和图片。
这样,一个非常简单的Ribbon就完成了,右击项目名,选择部署。注意:TemplateAlias="o2" />,并不是数字:零贰
找到对应的路径,文档库Ribbon的Document标签New组下,如图,已经有了我们创建的Hello Ribbon,点击,弹出“Hello ,Ribbon!”对话框。


如何使用VS创建SharePoint自定义Ribbon菜单(图文和代码)_第5张图片


细心的朋友可能会发现,这个过程怎么这么眼熟?没错,自定义一个Ribbon跟之前我们部署Feature是一样,实际上,这就是一个Feature,在“站点集功能”中,能看到:



在对应的路径下,也有我们的定义文件:C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\FEATURES\TestRibbon_Feature1。因此,我们完全可以通过像之前部署Feature一样来添加Ribbon,这儿就不在赘述。
    另外,在SharePoint 2010中已经定义了非常多的Ribbon,请参阅http://msdn.microsoft.com/en-us/library/ee537543(office.14).aspx,他们的定义在C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\GLOBAL\XML\ CMDUI.XML文件中。



你可能感兴趣的:(如何使用VS创建SharePoint自定义Ribbon菜单(图文和代码))