フォームのコンテキストでリボン ボタンが押されたときに呼び出されるカスタム JS 関数を用意します。私のカスタム JS 関数では、リボン ボタンが押される直前にどのフォーム フィールドにフォーカスがあったかを知る必要があります。私は2つの方法(以下)を試しましたが成功しませんでした。これを確実に行う方法はありますか?
方法#1
thisによると、必要なコントロールをパラメーターとして JS に渡すことができます。PrimaryControlId
とPrimaryControl
パラメータの両方を使用してみました。
<JavaScriptFunction FunctionName="OnCustomBtnFunc"
Library="$webresource:myJSfile.js">
<CrmParameter Value="PrimaryControlId" />
<CrmParameter Value="PrimaryControl" />
</JavaScriptFunction>
両方について、OnCustomBtnFunc() に渡されたオブジェクトを取得しますが、リボン ボタンが押される前にどのフォーム コントロールにフォーカスがあったかを判断できないようです。
方法 2
Xrm.Page.ui.getCurrentControl()を呼び出します。これは、一部のタイプのフォーム フィールドでは機能しますが、他のタイプでは機能しません。たとえば、文字列フィールドの場合は機能しますが、ルックアップでは null になります。