ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

微软Dynamics CRM 2013介绍系列之三十:筛选查找控件,so easy。

2020-02-26 10:00:28  阅读:285  来源: 互联网

标签:Xrm 控件 getControl 字段 查找 so easy new Page


        查找控件增加了preSearch事件。它发生在查找控件显示对话框供用户查找记录之前,与其他事件不同的是,不能使用界面来设定这个事件发生时执行的代码。只有通过Xrm.Page.getControl(arg).addPreSearch(handler) 和 Xrm.Page.getControl(arg).removePreSearch(handler) 来为该事件增加或者清除执行的代码。这个方法大大简化筛选查找字段的步骤,在Dynamics CRM 2011中要做到这样需要很多步骤。下面的演示主要参考 http://www.magnetismsolutions.com/blog/nathaneccles/2013/09/30/crm-2013-javascript-lookup-filtering-using-addcustomfilter

      本演示的作用是根据 单行文本 字段的值来筛选 客户 这个查找字段的可选择值(可以供选择的客户要以 单行文本 字段的值开头),使用的代码如下:

    

function onl oadHandler() {
    Xrm.Page.getControl("new_account").addPreSearch(function () {
        addLookupFilter();
    });
}

function OnSingleLineTextChangeHandler() {
    Xrm.Page.getAttribute("new_account").setValue(null);
    Xrm.Page.getControl("new_account").addPreSearch(function () {
        addLookupFilter();
    });
}

function addLookupFilter() {
    var singleLineText = Xrm.Page.getAttribute("new_singlelinetext").getValue();
    var fetchXml = "";
    if (singleLineText != null) {
        fetchXml = "<filter type='and'><condition attribute='name' operator='like' value='" + singleLineText + "%' /></filter>";
    }
    else {
        fetchXml = "<filter type='and'><condition attribute='name' operator='null' /></filter>";
    }
    Xrm.Page.getControl("new_account").addCustomFilter(fetchXml);
}

 

将上面的代码作为web resource上传以后,窗体属性的OnLoad事件执行OnLoadHandler函数。字段 单行文本 的OnChange 事件执行函数 OnSingleLineTextChangeHandler 。

新建一条记录,在我不输入 单行文本 字段的值时 客户字段没有值可以选择。就算我点击 查找更多记录 ,弹出窗口中也是没有值可以选择。 那我切换视图呢,查找记录窗口查看的视图我从 客户查找视图 切换到 可用客户,可以看到还是没有值可以选择,所以这个 addPreSearch 会作用于所有可用的视图,不错! 然后我在 单行文本 字段中输入了 测试,这时候 客户 这个查找字段自动做了筛选了。

 如果我点击 查找更多记录 这个链接,在出来的 查找记录 DIV层中切换试图也只有符合条件的记录能出来,可见筛选还是比较全面的。

如果我把 单行文本 字段的值更改成A,再输入 客户 字段,可见也自动做了合适的筛选。  

标签:Xrm,控件,getControl,字段,查找,so,easy,new,Page
来源: https://www.cnblogs.com/luoyong0201/p/Dynamics_CRM_2013_New_Feature_addPreSearch.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有