2017-01-20 15 views
1

ダイナミック365のオンラインでJavascriptを使用してフォームフィールドの値にアクセスするにはどうすればよいですか?これは私が試したことです:Dynamics 365フォームフィールドの値にアクセスするためのJavaScript

"load"という形式で呼び出される "onload"イベントを伴うスクリプトWebリソース。これは機能しません。私は[Object object]を得るが、私は文字列を期待する。それは、フィールドの値

function loadForm() 
{ 
    var value1 = Xrm.Page.data.entity.attributes.get("new_dealercode").getValue(); 
    alert(value1); 
} 

アンHTML私は、フォーム上で含めるWebリソースとは性質を示さないデバッグ、これは何もしませんが、私はそれに警告を置けば、それはあるので、それが呼び出されていることを知っています警告された。

<html> 
<head> 
<script type="text/javascript"> 
    var value1 = window.parent.Xrm.Page.getAttribute("new_dealercoder").getValue(); 
    alert(value1); 
</script><meta charset="utf-8"> 
</head><body><br></body> 
</html> 

私が達成しようとしているもの:フォーム上のフィールドの値に基づいて動的な「SRC」と アンiFrameを。

答えて

1

あなたはは、optionフィールド(ドロップダウン選択)取り組んでいる、しかし、あなたは、Optionオブジェクトを返します

Xrm.Page.getAttribute("new_dealercode").getSelectedOption(); 

を使用する必要がある場合あなたは

Xrm.Page.getAttribute("new_dealercode").getValue(); 

にフォームフィールドの値にアクセスするには、コードを短くすることができますtextおよびvalueプロパティ(MSDNを参照)。
LookupフィールドとDateTimeフィールドは取得して設定するのがさらに複雑です。

Lookup属性のプロパティを取得する必要がある場合は、プロパティid,nameおよびlogicalnameを持つEntityReferencesの配列を処理しています。

は、id得る配列の最初の要素にアクセスするには、次の

var dealerobj = Xrm.Page.getAttribute("new_dealercode").getValue(); 
var dealerid = dealerobj[0].id; 

注意を!ヌル値をチェックしてコードを強化したい場合があります。


はあなたの第二の問題として、あなたは完全なリファレンスを見つけることMSDN Client-side programming reference

Xrm.Page.getControl("your_control_name_here").setSrc("$webresources\new_your.html") 

スタートを使用してiframeフォームコントロールのソースにアクセスすることができます。

+0

アラートに[オブジェクトオブジェクト]が表示されていて、テキスト値が必要です。アラートが発生したためにJavascriptがあまりにも早く呼び出されると思っていますページが完全にロードされる前に(「OK」をクリックするとレンダリングが続行されます)これは「Form Onload」の代わりにフォーム上のHTML Webリソースにjavascriptを置く必要があると思います。 –

+0

CRMフォームのOnLoadイベントに関数を登録した場合は、すべてのフォーム項目/属性値にアクセスできることが保証されます。Webリソースから親CRMフォームにアクセスしようとすると、あなたのケースで何がうまくいかないのか分からないのは難しいですが、これはうまくいかないとは考えにくい基本的なものです – Filburt

+0

何が問題なのかを知りました。ルックアップから値を取得する方法です。私は "名前"を得ることができますが、私はIDが必要です。私はそれをどうやって得ることができるか知っていますか? –

関連する問題