onchangeイベントを“ locked”に追加しますDynamics CRM 4のフィールド
-
06-07-2019 - |
質問
Dynamics CRM 4をカスタマイズしています。ケースエンティティのフォームを変更して、ナレッジベース記事の参照フィールド(kbarticleid_ledit)のonchangeイベントにJavaScriptを追加したいと思います。ただし、そのフィールドの[プロパティの変更]をクリックすると、エラーメッセージが表示されます。
このフィールドはロックされたセクションに属し、プロパティを変更できません。
どうすればこれを回避して編集できますか? 記事ビューのカスタマイズに類似した回避策がありますか?または、何らかの方法でDBをハッキングして「ロック解除」することもできます。そのフィールド?
解決 2
OK、私はそれを考え出した-他の誰かが同じ問題に遭遇した場合に備えてここに投稿する。 CaseエンティティのカスタマイズをXMLにエクスポートし、XMLを編集する必要があります。 「ロック解除」できます。セクションをXMLで対応する要素を見つけて、属性 locklevel =" 1" を locklevel =" 0" に変更します。
ただし、ロックを解除しても、onchangeイベントコードの編集には役立ちませんでした。 CRMにはそのイベント用のコードが既にあり、UIにコードを追加すると、2番目の「onchange」が追加されました。 XMLのイベント!そのため、XMLのコードを(適切なXMLエンコードを使用して)手動で編集し、カスタマイズを再インポートして公開する必要がありました。
他のヒント
onloadイベントからonchangeコードを追加することもできます。たとえば、ロックされたフィールドのIDがlockedFieldだった場合、次のようなことができます。
var field = crmForm.all.lockedField;
if (field)
field.attachEvent('onchange', onChangeEventHandler);
function onChangeEventHandler()
{
// do something
}