【问题标题】:how to place a button on crm 2011 form.如何在 crm 2011 表单上放置一个按钮。
【发布时间】:2013-11-26 16:30:04
【问题描述】:

我想在 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 社区或您的解决方案或联系....

我不知道为什么会这样。有帮助吗?

【问题讨论】:

    标签: javascript dynamics-crm-2011 dynamics-crm


    【解决方案1】:

    请记住,使用 getElementById 将不受支持,并且在某些浏览器中可能不起作用(在 Outlook 2007 中不起作用)。

    我建议将其放在网络资源中,或利用功能区实现此功能。其中任何一个都符合您的要求吗?

    【讨论】:

    • 我肯定会支持 Nick 的建议,你真的应该使用表单功能区来实现这样的功能。
    • 你知道我认为它会满足要求。了解客户,我知道他们会有一些保留,但我想我可以向他们解释,在表格上放一个按钮是行不通的。但是我可以从功能区上的按钮触发网络服务(这个按钮最终应该这样做)吗?
    【解决方案2】:

    如果你将你的 js 用作网络资源,那么你应该不会有任何问题。

    或者你甚至可以触发 OnLoad 函数

    请看以下内容:

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

    【讨论】:

    • js作为web资源被触发表单的OnLoad函数。
    【解决方案3】:

    如果您需要访问表单,我建议您添加自定义网络资源(在 onload 事件中包含 javascript 功能的 HTML 页面),请使用 window.parent.document.Xrm.Page ....

    【讨论】:

      【解决方案4】:

      2 件事可能会导致此问题:

      1. 您的按钮无法访问 evt 功能

      解决方法:尝试在全局范围内注册 evt 函数,即

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

      window.evt = function() {} 
      

      2。您的按钮使用与占位符字段相同的字段名称。 这可能会导致内部问题。

      解决方案:尝试为您的按钮提供另一个(虚假)ID,即字段名+“_button”

      【讨论】:

        【解决方案5】:

        您是否尝试过 3rd 方应用程序...

        http://crmvisualribbonedit.codeplex.com/

        从网络资源调用函数。 注意:记得添加 $ 以引用 Web 资源位置 示例 $webresource:ButtonScript.js

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-09-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-05-27
          相关资源
          最近更新 更多