演练:向服务器功能区中添加选项卡

上次修改时间: 2011年2月7日

适用范围: SharePoint Foundation 2010

本文内容
创建 SharePoint 项目
添加新功能
定义自定义操作
部署自定义项

本主题介绍如何将新选项卡添加到 Microsoft SharePoint Foundation 中的服务器功能区。

先决条件

SharePoint Foundation 2010

Microsoft Visual Studio 2010 中的 SharePoint 开发工具

创建 SharePoint 项目

要添加新选项卡,应首先创建一个空白 SharePoint 项目。

创建 SharePoint 项目

  1. 启动 Visual Studio 2010。

  2. 在"文件"菜单上,指向"新建",然后单击"项目"。

  3. 在"项目类型"中的"Visual Basic"或"C#"下,选择"空白 SharePoint 项目"。

  4. 键入 AddARibbonTab 作为项目名称,然后单击"确定"。

  5. 在"SharePoint 自定义向导"中,选择"部署为沙盒解决方案",然后单击"完成"。

添加新功能

可以使用功能自定义功能区。执行以下步骤将向您的解决方案中添加新功能。

添加新功能

  1. 在"解决方案资源管理器"中,右键单击"功能",然后选择"添加功能"。

  2. 将功能的"标题"更改为 Custom Ribbon Tab。

  3. 在"解决方案资源管理器"中,右键单击"Feature1",然后选择"重命名"。键入 CustomRibbonTab 作为新名称。

  4. 在"解决方案资源管理器"中,右键单击"AddARibbonTab"项目,指向"添加",然后单击"新建项"。

  5. 在"添加新项"对话框中,选择"空元素"模板。输入 CustomRibbonTab 作为名称。

定义自定义操作

可使用自定义操作中的功能区 XML 定义功能区自定义项。有关功能区 XML 的详细说明,请参阅服务器功能区 XML

定义自定义操作

  1. 打开 Elements.xml 文件。

  2. 将以下功能区 XML 粘贴到 Elements.xml 文件中。这将在文档库中添加一个新的"我的自定义选项卡"选项卡,其中包含一个组和三个按钮。

    <?xml version="1.0" encoding="utf-8"?>
    <Elements xmlns="https://schemas.microsoft.com/sharepoint/">
      <CustomAction
        Id="MyCustomRibbonTab"
        Location="CommandUI.Ribbon.ListView"
        RegistrationId="101" 
        RegistrationType="List">
          <CommandUIExtension>
            <CommandUIDefinitions>
              <CommandUIDefinition
                Location="Ribbon.Tabs._children">
                <Tab 
                  Id="Ribbon.CustomTabExample" 
                  Title="My Custom Tab" 
                  Description="This holds my custom commands!" 
                  Sequence="501">
                <Scaling
                  Id="Ribbon.CustomTabExample.Scaling">
                  <MaxSize
                    Id="Ribbon.CustomTabExample.MaxSize" 
                    GroupId="Ribbon.CustomTabExample.CustomGroupExample" 
                    Size="OneLargeTwoMedium"/>
                  <Scale 
                    Id="Ribbon.CustomTabExample.Scaling.CustomTabScaling"
                    GroupId="Ribbon.CustomTabExample.CustomGroupExample" 
                    Size="OneLargeTwoMedium" />
                </Scaling>
                <Groups Id="Ribbon.CustomTabExample.Groups">
                  <Group 
                    Id="Ribbon.CustomTabExample.CustomGroupExample" 
                    Description="This is a custom group!" 
                    Title="Custom Group" 
                    Sequence="52" 
                    Template="Ribbon.Templates.CustomTemplateExample">
                    <Controls Id="Ribbon.CustomTabExample.CustomGroupExample.Controls">
                      <Button 
                        Id="Ribbon.CustomTabExample.CustomGroupExample.HelloWorld" 
                        Command="CustomTabExample.HelloWorldCommand" 
                        Sequence="15" 
                        Description="Says hello to the World!" 
                        LabelText="Hello, World!" 
                        TemplateAlias="cust1"/>
                      <Button 
                        Id="Ribbon.CustomTabExample.CustomGroupExample.GoodbyeWorld" 
                        Command="CustomTabExample.GoodbyeWorldCommand" 
                        Sequence="17" 
                        Description="Says good-bye to the World!" 
                        LabelText="Good-bye, World!" 
                        TemplateAlias="cust2"/>
                      <Button 
                        Id="Ribbon.CustomTabExample.CustomGroupExample.LoveWorld" 
                        Command="CustomTabExample.LoveWorldCommand" 
                        Sequence="19" 
                        Description="Says I love the World!" 
                        LabelText="I love you, World!" 
                        TemplateAlias="cust3"/>
                    </Controls>
                  </Group>
                </Groups>
              </Tab>
            </CommandUIDefinition>
            <CommandUIDefinition Location="Ribbon.Templates._children">
              <GroupTemplate Id="Ribbon.Templates.CustomTemplateExample">
                <Layout 
                  Title="OneLargeTwoMedium" 
                  LayoutTitle="OneLargeTwoMedium">
                  <Section Alignment="Top" Type="OneRow">
                    <Row>
                      <ControlRef DisplayMode="Large" TemplateAlias="cust1" />
                    </Row>
                  </Section>
                  <Section Alignment="Top" Type="TwoRow">
                    <Row>
                      <ControlRef DisplayMode="Medium" TemplateAlias="cust2" />
                    </Row>
                    <Row>
                      <ControlRef DisplayMode="Medium" TemplateAlias="cust3" />
                    </Row>
                  </Section>
                </Layout>
              </GroupTemplate>
            </CommandUIDefinition>
          </CommandUIDefinitions>
          <CommandUIHandlers>
            <CommandUIHandler
              Command="CustomTabExample.HelloWorldCommand" 
              CommandAction="javascript:alert('Hello, world!');" />
            <CommandUIHandler 
              Command="CustomTabExample.GoodbyeWorldCommand" 
              CommandAction="javascript:alert('Good-bye, world!');" />
            <CommandUIHandler 
              Command="CustomTabExample.LoveWorldCommand" 
              CommandAction="javascript:alert('I love you, world!');" />
          </CommandUIHandlers>
        </CommandUIExtension>
      </CustomAction>
    </Elements>
    

部署自定义项

由于该项目是作为沙盒解决方案创建的,因此它将部署到解决方案库。

部署自定义项

  1. 按 F5。Visual Studio 2010 中的 SharePoint 开发工具将自动构建和部署功能。

  2. 导航到网站或子网站中的文档库。

  3. 单击"我的自定义选项卡"选项卡,查看"自定义组",然后单击"Hello, World"、"Good-bye, World"或"I Love You, World"按钮。

请参阅

概念

服务器功能区的声明性自定义项