2013-10-09 59 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>