2017-11-02 10 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. 결과합니다 (저장 후 기록하다 D 플러그인은 실행) 완료 :

"org_myfield was changed" 

필수 결과 : 경보가를 해고 할 수 없습니다.

+1

기다림, 무엇? 이것은 불가능합니다 :) 당신은 어떻게 이것을 실제로 얻고 있습니까? –

+1

위와 정확히 일치합니다. 이해하는 바와 같이 이것은 [MSDN] (https://msdn.microsoft.com/en-us/library/gg334481.aspx)에 따른 예상 된 동작입니다. "이 이벤트 [OnChange]는 서버의 데이터 변경이 레코드를 저장 한 후와 같이 양식을 새로 고칠 때 필드를 업데이트하기 위해 검색됩니다. " – HeyJude

+0

폼로드 오 예, 나는 공회전에 대해 생각했습니다 :) –

답변

1

나는 이것이 당신이 얻으려고하는 것이라고 생각한다.
1. 사용자가이 필드를 변경하면, 변경시 JavaScript 기능을 호출한다.
2. 레코드가 저장되면 플러그인이 필드의 값을 변경할 수도 있습니다.
3. 필드 값이 플러그인에 의해 변경된 경우 JavaScript 함수를 건너 뜁니다. 이 맞으면

,이 방법을 시도 할 것 :
대신, 현장에서 onChange 이벤트를 제거 형태의 onSave 이벤트에서 필드 상태를 확인합니다.
Xrm.Page.getAttribute("org_myfield").getIsDirty()을 사용하여 사용자가 필드를 변경했는지 확인하십시오. 클라이언트 측의 변경 사항 만 검사하므로 플러그인의 영향을받지 않습니다.