【问题标题】:Jscript unable to get property '$o_3' of undefined or null reference CRM 2015Jscript 无法获取未定义或空引用 CRM 2015 的属性“$o_3”
【发布时间】:2015-08-12 16:12:43
【问题描述】:
function preFilterLookup() 
{    

   1: Xrm.Page.getControl("customerid").addPreSearch(addLookupFilter);

    document.getElementById("customerid").setAttribute("defaulttype","2");
    Xrm.Page.getControl("customerid").setDefaultView("00000000-0000-0000-00AA-000010001004");
}

function addLookupFilter() 
{
    document.getElementById("customerid").setAttribute("lookuptypenames", "contact:2:Contact");
    document.getElementById("customerid").setAttribute("lookuptypes", "2");
}

出现错误:无法获取未定义或空引用的属性“$o_3”所有项目都有正确的 ID 尝试了下面代码的多种变体,但没有一个可以工作。它似乎源于第一行,我可以禁用代码,但它让我发疯,我无法弄清楚,非常感谢任何帮助。

【问题讨论】:

  • 代码不受支持,这就是你得到错误的原因
  • 我认为这是一个复制和粘贴错误,但preFilterLookup 函数的第一行不是有效的 JavaScript
  • @jasonscript 我用一个突出显示错误并在 cmets 中引用它,Guido 哪些元素不受支持???
  • @jasonscript 第一行可以是有效的 JonnyM 不支持使用 setAttribute 更改查找窗口内的实体(您只想显示联系人)。
  • @GuidoPreite,你能建议另一种不使用 setattribute 来显示联系人的方法吗?

标签: dynamics-crm-2011 dynamics-crm dynamics-crm-2013 jscript


【解决方案1】:

看起来错误是在升级到 UR1 时引入的。 下面的代码给出了完全相同的错误。但只有在关闭新(turbo)表单的情况下......在表单的 OnLoad 中,我调用了 test_onLoad 函数。

function test_onLoad() {
  var control = Xrm.Page.getControl("new_accountid").addPreSearch(function () {
    addLookupFilter();
  });
}

function addLookupFilter() 
{
  alert('Hallo');
}

【讨论】:

    【解决方案2】:

    preFilterLookup 中的最后一行似乎表明您正在尝试默认查找视图。 (Guido 也是对的,不支持使用 document.getElementById)

    如果您尝试将自定义视图添加到查找并将其设置为默认值,那么您可以使用

    Xrm.Page.ui.controls.get("[tablename]").addCustomView(viewID, "[tablename]", "[viewname]", "[fetchXMLString]", "[TSAlayoutXMLstring]", true);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-01
      • 2020-04-28
      • 2016-08-16
      • 2017-05-18
      相关资源
      最近更新 更多