如何创建一个按钮,执行删除功能区按钮执行的相同事件

时间:2013-10-09 17:35:28

标签: dynamics-crm-2011

我有一个自定义实体,如果表单中填充了特定值,则只需显示“删除”按钮。如果这是一个自定义功能区按钮,我会使用Enable Rules部分来调用JavaScript函数。

所以,我做到了。我隐藏了系统删除按钮并创建了自己的按钮。但我不知道如何让新创建的按钮调用原始删除按钮调用的相同功能。目前,我有按钮调用REST函数来删除记录,但UI不会像我单击System.Delete按钮时那样自动刷新。

我可以调用系统JavaScript方法而不是自己构建所有这些功能吗?

1 个答案:

答案 0 :(得分:1)

我认为你的根本问题是如何禁用系统按钮。好消息是我们现在可以做到,但在我看来这是一项复杂的任务。以下是详细步骤: 1.使用ExportXml导出系统功能区文件。 (SDK \ samplecode \ CS \客户\色带\ exportribbonxml)

  1. 找到合适的功能区文件。如果要修改帐户的功能区,则应选择accountRibbon.xml。

  2. 打开功能区文件,找到要隐藏的按钮定义语句。

  3. 4.将这些语句复制到自定义实体的customizations.xml中,并修改它的enablerule。

    下面是一个示例代码,它能够在主页功能区中隐藏自定义实体的新按钮。

              <CustomAction Id="Mscrm.Form.new_purchaseorder.SaveAndNew.custom" Location="Mscrm.Form.new_purchaseorder.MainTab.Save.Controls._children">
                <CommandUIDefinition>
                  <Button Id="Mscrm.Form.new_purchaseorder.SaveAndNew" ToolTipTitle="$Resources:Mscrm_Form_Other_MainTab_Save_SaveAndNew_ToolTipTitle" ToolTipDescription="$Resources(EntityDisplayName):Ribbon.Tooltip.SaveAndNew" Command="Mscrm.SaveAndNewPrimary.custom" Sequence="40" LabelText="$Resources:Ribbon.Form.MainTab.Save.SaveAndNew" Alt="$Resources:Ribbon.Form.MainTab.Save.SaveAndNew" Image16by16="/_imgs/ribbon/saveandnew16.png" Image32by32="/_imgs/ribbon/saveandnew32.png" TemplateAlias="o2" />
                </CommandUIDefinition>
              </CustomAction>
    
     <CommandDefinition Id="Mscrm.SaveAndNewPrimary.custom">
                <EnableRules>
                  <EnableRule Id="Mscrm.NewRecordFromGrid.EnableRule1" />
                  <EnableRule Id="Mscrm.AvailableOnForm" />
                  <EnableRule Id="Mscrm.CanSavePrimary" />
                </EnableRules>
                <DisplayRules>
                  <DisplayRule Id="Mscrm.CreatePrimaryEntityPermission" />
                </DisplayRules>
                <Actions>
                  <JavaScriptFunction FunctionName="Mscrm.RibbonActions.saveAndNewForm" Library="/_static/_common/scripts/RibbonActions.js">
                    <CrmParameter Value="PrimaryControl" />
                  </JavaScriptFunction>
                </Actions>
              </CommandDefinition>
    
         <EnableRule Id="Mscrm.NewRecordFromGrid.EnableRule1">
                  <CustomRule Library="$webresource:new_purchaseorder.js" FunctionName="NewRecordFromGrid_enablerule1" Default="false"></CustomRule>
                </EnableRule>