2013-08-16 2 views
1

Dynamics CRM에서 양식의 단추를 만들려고하므로 onClick 단추에 대화 상자가 표시됩니다. 다음과 같이 내가 사용하고있는 JS 코드는 다음과 같습니다Dynamics CRM 사용자 지정 양식 이벤트 자바 스크립트에서 오류가 발생했습니다.

function addButton(attributename) { 
if (document.getElementById(attributename) != null) { 
    var sFieldID = "field" + attributename; 
    var elementID = document.getElementById(attributename + "_d"); 
    var div = document.createElement("div"); 
    div.style.width = "19%"; 
    div.style.textAlign = "right"; 
    div.style.display = "inline"; 
    elementID.appendChild(div, elementID); 
    div.innerHTML = '<button id="' + sFieldID + '" type="button" style="margin-left: 4px; width: 100%;" ><img src="/_imgs/ico_16_4210.gif" border="0" alt="Dial this number"/></button>'; 
    document.getElementById(attributename).style.width = "80%"; 
    document.getElementById(sFieldID).onclick = function() {onbuttonclick(); }; 
    } 
} 

    function onbuttonclick() { alert('Hi');} 

이 기능은 연락처 개체의 형태의 온로드 이벤트와 트리거 가져옵니다 JS 웹 리소스로 작성되었습니다. 양식로드 이벤트가 트리거 될 때마다 대화 상자에 다음 오류가 표시됩니다.

이 필드의 사용자 지정된 이벤트에는 오류가있었습니다. 필드 : 창 이벤트 : 온로드 오류 :

정의되지 않은 친절 해상도으로 저를 안내합니다. 코드는 샘플 예제에서 가져온 것입니다.

+1

예제 코드가 잘못되었습니다. 양식은 DOM을 통하지 않고 XRM 개체를 통해 액세스해야합니다. 다른 예제를 MSDN에서 살펴 보시기 바랍니다. – Bvrce

+0

이 버튼으로 무엇을하고 싶습니까? –

+0

for this now이 샘플을 실행하고 싶습니다. 즉, onClick 안녕하세요 대화 상자가 표시되어야합니다. – pointer

답변

0

이것은 단순히 자바 스크립트 어딘가에 오류가 있음을 의미합니다.

더 나은 해결책은 리본 버튼을 사용하고 (지원되지 않는) DOM을 망치는 대신 리본 버튼 호출 자바 스크립트를 사용하는 것입니다. 당신의 ribbondiffxml에 다음 코드를 드롭 :

<Actions> 
    <JavaScriptFunction Library="$[js library name]" FunctionName="[js function name]" /> 
</Actions> 

특히이는 CommandDefinitionNode에 가야한다.

Ribbon.openDialogProcess = function (dialogId, EntityName, objectId) { 
var url = Xrm.Page.context.getClientUrl() + 
    "/cs/dialog/rundialog.aspx?DialogId=" + 
    dialogId + "&EntityName=" + 
    EntityName + "&ObjectId=" + 
    objectId; 
var width = 400; 
var height = 400; 
var left = (screen.width - width)/2; 
var top = (screen.height - height)/2; 
window.open(url, '', 'location=0,menubar=1,resizable=0,width=' + width + ',height=' + height + ',top=' + top + ',left=' + left + ''); 
} 

그렇게 간단하게 RibbonDiffXML에서 해당 메소드를 호출
는 여기에 자바 스크립트를 통해 대화 상자를 엽니 다 무엇의 예입니다.

관련 문제