javascript
  • dynamics-crm-2011
  • dynamics-crm
  • 2013-11-26 26 views 2 likes 
    2

    我想在CRM 2011表單上放置一個按鈕。如何在crm 2011窗體上放置按鈕。

    function create_button(fldName, btnLabel, btnWidth, evt) 
    { 
    try{ 
    fldName = "inmate_button_submit"; 
    btnLable="Click Me"; 
    // btnWidth="200px"; 
    
    
    var btn = '<button class="ms-crm-Button" onclick="evt()" style="width:50px" id="' +  fldName + '" onmouseover="Mscrm.ButtonUtils.hoverOn(this);" onmouseout="Mscrm.ButtonUtils.hoverOff(this);" >Click Me</button>'; 
    
    var ctrl = null; 
    
    try { 
        ctrl = Xrm.Page.ui.controls.get(fldName).get_chromeElement()[0]; 
    } catch (e) { 
        ctrl = Xrm.Page.ui.controls.get(fldName)._control.get_element(); 
    } 
    
    // Add the new button 
    ctrl.innerHTML += btn; 
    
    // Hide the textbox 
    ctrl.children[0].style.display = 'none'; 
    ctrl.children[1].style.display = 'none'; 
    
    // Hide the label 
    Xrm.Page.ui.controls.get(fldName).setLabel(btnLable); 
    
    // Add Event to the newly created button 
    ctrl.children[0].attachEvent('onclick', evt); 
    
    } 
    catch(e){alert(e.description);} 
        } 
    function evt() 
    { 
    alert("You have clicked me!!"); 
    } 
    

    以上是我將下面的代碼放在窗體上的按鈕。當我點擊按鈕時,在顯示警報後,crm給我以下錯誤。

    錯誤 發生錯誤。 再次嘗試此操作。如果問題仍然存在,請檢查Microsoft Dynamics CRM社區或您的解決方案或聯繫....

    我不知道爲什麼會發生這種情況。任何幫助傢伙?

    回答

    3

    請記住,使用的getElementById將是不支持的,可能無法正常工作(不Outlook中的工作2007)在一些瀏覽器中。

    我建議將它放在網絡資源中,或者利用功能區來實現此功能。那兩個都能滿足你的要求嗎?

    +0

    我肯定會在這裏第二個Nick的建議,你應該真的使用表單功能區。 – Piyush

    +0

    你知道我認爲它會符合要求。瞭解客戶我知道他們會有一些保留,但我想我可以解釋他們在表單上放一個按鈕不會工作。 但是,我可以從功能區上的按鈕觸發一個Web服務(這個按鈕應該最終做的)嗎? – hkhan

    1

    如果您使用您的js作爲webresource,那麼您不應該有任何問題。

    或者你甚至可以觸發功能的OnLoad

    請參閱以下內容:

    http://www.mscrmconsultant.com/2012/07/insert-custom-button-on-crm-form-using.html

    +0

    js被用作Web資源並觸發窗體的OnLoad函數。 – hkhan

    0

    我會建議添加自定義webresource如果您需要訪問形成,使用window.parent.document.Xrm.Page(在onload事件contanis JavaScript功能的HTML頁面)....

    0

    2個事情都有可能導致此問題:

    1. EVT功能是不是你的按鈕訪問

    解決方案:嘗試註冊在全球範圍內EVT功能即

    evt = function() { alert("…"); } 
    

    window.evt = function() {} 
    

    2.您的按鈕使用相同的字段名稱作爲佔位符場。 這可能會導致內部問題。

    解決方案:嘗試從給你的另一個按鈕(假的)ID而不是即字段名+ 「_button」

    0

    你有沒有嘗試過的第三方應用程序...

    http://crmvisualribbonedit.codeplex.com/

    調用函數網絡資源。 注意:請記住添加$以引用web資源位置 示例$ webresource:ButtonScript.js

    相關問題