SharePoint2013 功能区的配置

遇到了很多次对网站功能区个性化定义的任务,包括标签按钮之类的修改,每次都要重新翻书,这次总结一下,留作备用。

添加内容

下面的XML我认为主要的内容是四部分,一个是CommandUIDefinition下的tab,一个是scaling,一个是button,一个是CommandUIHandler。

如果是完整的重新添加按钮,主要是分为以下几个主要内容:

  1. 定义location
  2. 添加tab
  3. 添加group,指定grouptemplate
  4. 添加button,指定commond
  5. 添加grouptemplate,id和在group中的引用保持一致
  6. 添加commond,和button中指定的保持一致。

注意在:

Section Alignment="Top" Type="OneRow"

Type="OneRow" 即一个按钮

Type="TwoRow" 即布局两个按钮

并且尽量使所有的id都不重复。

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <CustomAction
    Id="listApproval"
    Location="CommandUI.Ribbon.DisplayForm"
    RegistrationId="100"
    RegistrationType="List"
    Rights="EditListItems">
    <CommandUIExtension>
      <CommandUIDefinitions>
        <CommandUIDefinition
          Location="Ribbon.Tabs._children" >
          <Tab
            Id="Ribbon.ApprovalRibbon"
            Title="审批流程"
            Description="审批流程"
            Sequence="1001">
            <Scaling //缩放比例
              Id="Ribbon.ApprovalRibbon.Scaling">
              <MaxSize
                Id="Ribbon.ApprovalRibbon.MaxSize"
                GroupId="Ribbon.ApprovalRibbon.ApprovalGroup"
                Size="OneLargeTwoMedium"/>
              <Scale
                Id="Ribbon.ApprovalRibbon.Scaling.CustomTabScaling"
                GroupId="Ribbon.ApprovalRibbon.ApprovalGroup"
                Size="OneLargeTwoMedium" />
            </Scaling>
            <Groups Id="Ribbon.ApprovalRibbon.Groups">
              <Group
                Id="Ribbon.ApprovalRibbon.ApprovalGroup"
                Description="审批流程"
                Title="审批流程"
                Sequence="52"
                Template="Ribbon.Templates.CustomTemplateExample">
                <Controls Id="Ribbon.ApprovalRibbon.ApprovalGroup.Controls">
                  <Button
                    Id="Ribbon.ApprovalRibbon.ApprovalGroup.HelloWorld"
                    Command="ApprovalRibbon.SubmitCommand"
                    Sequence="15"
                    Description="提交"
                    LabelText="提交"
                    TemplateAlias="cust1"
                    Image32by32="/_layouts/images/ALLMTGS.gif"/>
                  <Button
                 Id="Ribbon.ApprovalRibbon.ApprovalGroup.Approval"
                 Command="ApprovalRibbon.ApprovalCommand"
                 Sequence="15"
                 Description="审批"
                 LabelText="审批"
                 TemplateAlias="cust2"
                 Image32by32="/_layouts/images/ALLMTGS.gif"/>
                </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="OneRow">
                <Row>
                  <ControlRef DisplayMode="Large" TemplateAlias="cust2" />
                </Row>
              </Section>
            </Layout>
          </GroupTemplate>
        </CommandUIDefinition>
      </CommandUIDefinitions>
      <CommandUIHandlers>
        <CommandUIHandler
          Command="ApprovalRibbon.SubmitCommand"
          CommandAction="javascript:MakeModelDialog('提交审批', 560, 200, '/_layouts/15/DVT.SharePoint.Portal.RLGS.Resources/ConfirmSubmitDetail.aspx?selectdata=' + GetDetailID());"/>

        <CommandUIHandler
          Command="ApprovalRibbon.ApprovalCommand"
          CommandAction="javascript:approval();"/>
      </CommandUIHandlers>
    </CommandUIExtension>
  </CustomAction>
</Elements>

修改现有按钮

修改现有按钮,只需要重写Location的定义就可以了,下面的代码修改了列表的工作流按钮

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <CustomAction
    Id="ReplaceWorkFlow"
    Location="CommandUI.Ribbon.ListView"
    RegistrationId="100"
    RegistrationType="List"
    Rights="EditListItems">
    <CommandUIExtension>
      <CommandUIDefinitions>
        <CommandUIDefinition
          Location="Ribbon.ListItem.Workflow.ViewWorkflows" >
          <Button
                  Id="Ribbon.ListItem.Workflow.ViewWorkflows"
                  Sequence="10"
                  Command="ReplaceWorkFlowCommand"
                  Image16by16="/_layouts/$Resources:core,Language;/images/formatmap16x16.png" Image16by16Top="-48" Image16by16Left="-208"
                  Image32by32="/_layouts/$Resources:core,Language;/images/formatmap32x32.png" Image32by32Top="-192" Image32by32Left="-416"
                  LabelText="$Resources:core,cui_ButWorkflows;"
                  ToolTipTitle="$Resources:core,cui_ButWorkflows;"
                  ToolTipDescription="$Resources:core,cui_STT_ButItemManageWorkflow;"
                  TemplateAlias="o1"
              />
        </CommandUIDefinition>
      
      </CommandUIDefinitions>
      <CommandUIHandlers>
        <CommandUIHandler
          Command="ReplaceWorkFlowCommand"
          CommandAction="javascript:alert('请点击左上角的审批“流程-提交” 进行发布数据');"/>
      </CommandUIHandlers>

    </CommandUIExtension>
  </CustomAction>
</Elements>

修改现有按钮时比较重要的一点就是,找到location,以下是参考的内容:

posted @   天街小雨&  阅读(271)  评论(0编辑  收藏  举报
努力加载评论中...
编辑推荐:
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
· 对象命名为何需要避免'-er'和'-or'后缀
· SQL Server如何跟踪自动统计信息更新?
阅读排行:
· “你见过凌晨四点的洛杉矶吗?”--《我们为什么要睡觉》
· 编程神器Trae:当我用上后,才知道自己的创造力被低估了多少
· C# 从零开始使用Layui.Wpf库开发WPF客户端
· C#/.NET/.NET Core技术前沿周刊 | 第 31 期(2025年3.17-3.23)
· 接口重试的7种常用方案!
点击右上角即可分享
微信分享提示