2017-11-02 6 views
2

に更新され、それがトリガーされますこの現象は(サポートされた方法で)防止できますか?防止の焼成は、サーバー側

例コード:

1.クライアント側:

Xrm.Page.getAttribute("org_myfield").addOnChange(function() { alert("org_myfield was changed") }); 

2.サーバ側:

internal void OnPreUpdateRequest(org_myentity target, org_myentity preImage) 
{ 
    target.org_myfield = "some value"; 
} 

3.結果(保存した後〜を記録する

"org_myfield was changed" 

必要な結果:Dプラグインは、その実行)が終了し、アラートを解雇してはなりません。

+1

お待ちください。これは不可能です:)あなたはどのようにこれを実際に達成していますか? –

+1

上記はまさに私がやったことです。私が理解しているように、これは[MSDN](https://msdn.microsoft.com/en-us/library/gg334481.aspx)ごとに予期される動作です。「このイベント[OnChange]は、サーバー上のデータ変更がレコードが保存された後など、フォームがリフレッシュされたときにフィールドを更新するために取得されます。 – HeyJude

+0

私はアイドリングで考えていました:) –

答えて

1

私はこれを取得しようとしていると信じています:
1.ユーザーがこのフィールドを変更するときは、JavaScript on change関数を呼び出します。
2.レコードが保存されると、プラグインによってフィールドの値も変更されることがあります。
3.フィールド値がプラグインによって変更されている場合は、JavaScript関数をスキップします。これが正しい場合

、私はこの方法を試してみます:
ではなく、フィールドからonChangeイベントを削除し、フォームのonSaveイベントのフィールドの状態を確認してください。
Xrm.Page.getAttribute("org_myfield").getIsDirty()を使用して、ユーザーがフィールド上で変更を行ったかどうかを判断します。クライアント側の変更をチェックするだけで、プラグインの影響を受けません。

関連する問題