我对 Dynamics crm 2015 在线有要求:
- 我在自定义实体上有一个查找和子网格。
- 当用户单击显示搜索框的“搜索”按钮时,我希望使用查找字段值预先填充该搜索,以便用户无需复制/粘贴或在搜索框中键入查找值搜索框。
到目前为止我已经尝试过了! 我编写了一个 JavaScript,其中尝试在“gridname_addImageButton”id 上使用“addEventListener”来捕获子网格上“+”按钮的事件,但该事件未捕获。对于正常的 Web 开发来说,这是非常基本的事情,但在动态 crm 上却不会发生。
更新 这是出现在网格上的“+”按钮的 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/