加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xml – 将下拉菜单添加到CRM 2011功能区

发布时间:2020-12-16 07:58:49 所属栏目:百科 来源:网络整理
导读:我是crm 2011的新手.我找到了有关如何在功能区中添加新按钮的文档.以及如何分组按钮.但我需要功能区中的下拉菜单按钮.我怎样才能做到这一点?我没有找到任何关于此的信息. 谢谢! 这应该让你开始.如果您只需要一个静态菜单,您可以将标签放在Flyout Control中
我是crm 2011的新手.我找到了有关如何在功能区中添加新按钮的文档.以及如何分组按钮.但我需要功能区中的下拉菜单按钮.我怎样才能做到这一点?我没有找到任何关于此的信息.

谢谢!

这应该让你开始.如果您只需要一个静态菜单,您可以将标签放在Flyout Control中并从那里构建菜单.
<FlyoutAnchor Id="Sample.account.form.FlyoutAnchor.Static"
              Sequence="10"
              Command="Mscrm.Enabled"
              Image16by16="/_imgs/placeholders/ribbon_placeholder_16.png"
              Image32by32="/_imgs/ribbon/newrecord32.png"
              LabelText="Sample Flyout"
              Alt="Sample Flyout"            
              TemplateAlias="isv">
  <Menu Id="Sample.account.form.Menu">
    <MenuSection Id="Sample.account.form.MenuSection" 
                 Title="Menu Section Title" 
                 Sequence="15">
      <Controls Id="Sample.account.form.MenuSection.Controls">
        <Button Id="Sample.account.form.Controls.Button.FirstButton"
                Command="Sample.ButtonCommand.Command"
                LabelText="First Button"
                ToolTipTitle="First Button"
                ToolTipDescription="The first button"
                TemplateAlias="isv"
                Sequence="20"/>
      </Controls>
    </MenuSection>
  </Menu>
</FlyoutAnchor>

如果要动态生成菜单,可以使用此弹出控件.请注意添加的Populate属性.
然后你必须通过JavaScript构建菜单.

<FlyoutAnchor Id="Sample.account.form.FlyoutAnchor.Dynamic"
              Sequence="10"
              Command="Mscrm.Enabled"
              Image16by16="/_imgs/placeholders/ribbon_placeholder_16.png"
              Image32by32="/_imgs/ribbon/newrecord32.png"
              LabelText="Sample Flyout"
              Alt="Sample Flyout"
              PopulateDynamically="true"
              PopulateQueryCommand="Sample.PopulateDynamicMenu"
              TemplateAlias="isv" />

我创建了两个访问javascript函数的命令. DynamicMenu构建菜单,搜索用于确定按下了哪个按钮控件.注意这两个都传递了CommandProperties参数,这对于javascript很重要.

<CommandDefinition Id="Sample.PopulateDynamicMenu">
      <EnableRules>
        <EnableRule Id="Mscrm.Enabled" />
      </EnableRules>
      <DisplayRules />
      <Actions>
        <JavaScriptFunction FunctionName="DynamicMenu"
                            Library="$webresource:a_JavaScript_File">
          <CrmParameter Value="CommandProperties" />
        </JavaScriptFunction>
      </Actions>
</CommandDefinition>
<CommandDefinition Id="Sample.SearchCommand">
      <EnableRules />
      <DisplayRules />
      <Actions>
        <JavaScriptFunction FunctionName="Search" 
                            Library="$webresource:a_JavaScript_File">
          <CrmParameter Value="CommandProperties" />
        </JavaScriptFunction>
      </Actions>
</CommandDefinition>

这是javascript函数:

function DynamicMenu(CommandProperties) {
    ///<summary>Dynamically generate menu items based on context</summary>
    /// <param name="CommandProperties">
    ///    Command properties crm parameter sent from the ribbon.  object used to inject the Menu XML
    /// </param>

    var menuXml = '<Menu Id="Sample.DynamicMenu">' +
                    '<MenuSection Id="Sample.Dynamic.MenuSection" Sequence="10">' +
                        '<Controls Id="Sample.Dynamic.Controls">' +
                            '<Button Id="Sample.account.form.Controls.Button.FirstButton"' +
                                    ' Command="Sample.SearchCommand"' +
                                    ' LabelText="First Button"' +
                                    ' ToolTipTitle="First Button"' +
                                    ' ToolTipDescription="The first button"' +
                                    ' TemplateAlias="isv"' +
                                    ' Sequence="20" />' +                                  
                        '</Controls>' +
                    '</MenuSection>' +
                '</Menu>';


    CommandProperties.PopulationXML = menuXml;
}

function Search(CommandProperties) {
    ///<summary>Determines which control was pressed</summary>
    /// <param name="CommandProperties">
    ///    Command properties crm parameter sent from the ribbon.  object used to read which dynamically generated
    ///    button is selected.
    /// </param>

    var controlId = CommandProperties.SourceControlId;
    switch (controlId) {
        case 'Sample.account.form.Controls.Button.FirstButton':
            alert(controlId + ' was pressed!');
            break;        
        default:
            alert('unknown');
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读