2013-04-27 90 views
1

當子網格獲得焦點時,JavaScript如何執行?

我有一個子網格,顯示與帳戶相關的所有案例。
我想在子網格接收焦點時禁用窗體上的一些字段。

的功能區按鈕RibbonDiffXML行動:CRM 2011子網格:調用JavaScript On-Click或On-Focus

 <Actions> 
      <JavaScriptFunction Library="$webresource:mda_convertemailtocaselib" FunctionName="ConvertEmailToCaseLib.addToCase"> 
       <CrmParameter Value="SelectedControlSelectedItemIds" /> 
      </JavaScriptFunction> 
     </Actions> 

此經過分格選擇項目到功能區按鈕,但我想在按下功能區按鈕之前,JavaScript的執行。

回答

1

我還沒有試過其中任何一個,但希望他們中的一個應該爲你工作。

  1. 雖然這是一個子網格,還有在窗體上的控件。不幸的是,由於沒有任何通過CRM JS API公開的OnFocus/OnBlur方法,因此沒有「受支持」的方式來知道控件何時獲得焦點。然而,你應該能夠添加你自己的JS事件處理程序,並通過API禁用字段Xrm.Page.getControl("fieldname").setDisabled(true)

  2. 我不是100%確定這種方式是否可行,但它會很漂亮。創建一個CustomRule EnableRule。在這個CustomRule中,你可以調用你自己的JS。在此創建一個函數,在其中禁用字段,然後返回true以啓用按鈕。這將是這個樣子:

function disableFieldsEnableRule() { 
     Xrm.Page.getControl().setDisabled(true); 
     ... 
     ... 
     return true; // so the button is enabled 
    } 

我不知道這是否會工作,是因爲我不知道,如果啓用規則,每次檢查你點擊子網格或唯一的原因,只是第一次(我認爲應該每次都是這樣)。另外,我不確定您是否希望在點擊關閉後重新啓用這些字段。如果你這樣做,你可能不得不通過本地表單上的按鈕或其他東西來做類似於此的事情。