2013-10-09 29 views
0

我有一个自定义实体,只需要显示删除按钮,如果有窗体中填充特定值。如果这是一个自定义功能区按钮,我会使用Enable Rules部分来调用JavaScript函数。如何创建按钮执行相同的事件删除功能区按钮执行

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

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

+0

为什么你没有将javascript规则应用到原始删除按钮? –

+0

我正在使用CRM 2011可视化功能区编辑器,它不允许我添加到该按钮。 –

+0

尝试使用功能区工作台http://www.develop1.net/public/page/Ribbon-Workbench-for-Dynamics-CRM-2011.aspx,在替代方案中,您始终可以手动修改xml –

回答

1

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

  1. 找到合适的功能区文件。如果你想修改账户的功能区,那么你应该选择accountRibbon.xml。

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

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>