javascript - 自定义事件处理程序 - Dynamics crm online

标签 javascript dynamics-crm

我对 Dynamics crm 2015 在线有要求:

  1. 我在自定义实体上有一个查找和子网格。
  2. 当用户单击显示搜索框的“搜索”按钮时,我希望使用查找字段值预先填充该搜索,以便用户无需复制/粘贴或在搜索框中键入查找值搜索框。

到目前为止我已经尝试过了! 我编写了一个 JavaScript,其中尝试在“gridname_addImageButton”id 上使用“addEventListener”来捕获子网格上“+”按钮的事件,但该事件未捕获。对于正常的 Web 开发来说,这是非常基本的事情,但在动态 crm 上却不会发生。

What I am trying to achieve!

更新 这是出现在网格上的“+”按钮的 HTML。

<a action="tec|ManyToMany|SubGridStandard|Mscrm.AddExistingRecordFromSubGridAssociated" tabindex="1340"
title="Add record." class="ms-crm-ImageStrip-addButton" style="display: block; cursor: pointer;"
onclick="return false;" id="tec_addImageButton" href="#">
  <img class="ms-crm-add-button-icon" title="Add Experlogix Model record." alt="Add record."
  id="Tec_addImageButtonImage" src="/_imgs/imagestrips/transparent_spacer.gif?ver=-893257913" />
</a>

这是我尝试过的 JavaScript:

var elem = document.getElementById('tec_addImageButton'); 
elem.addEventListener('click',myFunc(),false); 

我错过了什么? 问候, 莫米

最佳答案

CRM 表单不是“正常的 Web 开发”,因为该产品不支持直接 DOM 操作。唯一允许的操作是使用 CRM 的 Xrm.Page 对象完成的操作。 SDK 中记录了使用 Xrm.Page 的一般方法:https://msdn.microsoft.com/en-us/library/gg328261.aspx .

具体来说,您正在寻找 add a custom filter to a lookup ,可以使用以下代码完成:

Xrm.Page.getControl(arg).addCustomFilter(filter,entityLogicaName)

其中 filter 是具有有效 FetchXML 过滤器的字符串,即:

<filter type="and">
 <condition attribute="new_somefieldname" operator="eq" value="somevalue" />
</filter>

您可以在 OnLoad 事件中调用 addCustomFilter 或使用 PreSearch event handler添加您的过滤器:

Xrm.Page.getControl(arg).addPreSearch(handler)

归功于http://missdynamicscrm.blogspot.com/2014/08/crm-2013-using-addcustomfilter-to-get-filtered-lookup-field-based-on-linked-entity.html对于这个完全实现的示例。

function onLoad()
{
    addEventHandler();
}

function addEventHandler() {
    // add the event handler for PreSearch Event
    Xrm.Page.getControl("parentcontactid").addPreSearch(addFilter);
}

function addFilter() {
   //find contact contains this @example.com
   var email = "%@example.com%";

    //create a filter xml
   var filter = "<filter type='and'>" +
                "<condition attribute='emailaddress1' operator='like' value='" + email + "'/>" +
                 "</filter>";

    //add filter
    Xrm.Page.getControl("parentcontactid").addCustomFilter(filter);
}

关于javascript - 自定义事件处理程序 - Dynamics crm online,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34677367/

相关文章:

javascript - 从 iframe prependTo 最接近指定的父 div

javascript - jQuery UI 对话框使用 setTimeout 自动关闭

javascript - 快速查看字段应通过 JavaScript 获取

dynamics-crm - 锁定上下文返回的记录?或者也许改变我的方法

c# - 刷新页面后显示旧的 CRM 数据

c# - CRM 2011 从电子邮件抄送列表中删除事件方

javascript - 如何在javascript中将分数转换为 float ?

javascript - Q promise 传播错误和异常

javascript - 如何隐藏输入文件并将输入 ="file"设置为图标/图像

azure - Dynamics 365/Microsoft.ServiceBus DLL - System.Security.SecurityException : That assembly does not allow partially trusted callers