• 在执行方法和Web资源中获取传递过来参数的值


    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复228或者20161026可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me 。

    首先我们来看看通过getQueryStringParameters来获取参数的值。点击子网格的加号进行增加记录的时候,会发现URL中是类似这样的,https://demo.luoyong.me/main.aspx?etc=10008&extraqs=%3f_CreateFromId%3d%257bB707DE1B-CF99-E611-8161-000D3A80C8B8%257d%26_CreateFromType%3d10007%26etc%3d10008&histKey=881427917&newWindow=true&pagetype=entityrecord#908569294 
    这里就可以通过getQueryStringParameters来获取参数_CreateFromId的值,这个值也就是自网格对应父记录的ID。代码如下:
    Xrm.Utility.alertDialog("父记录ID=" + Xrm.Page.context.getQueryStringParameters()._CreateFromId);
     
    我们知道每个调用的函数都可以做如下的设置:
     
    如果选中了 将执行上下文作为第一个参数传递 ,那么执行函数的第一个参数的值将会传递它过来。
    将传递给函数的以都好分隔的参数列表,我们可以以逗号分隔传递给执行函数参数,我这里第一个是传递数字参数10,第二个是传递字符串类型的参数,第三个也是字符串类型的参数,但是我希望在代码中可以转换为日期,所以我使用了类似 2016-01-01 00:00:00 的格式字符串来传递。然后执行的代码可能就类似如下了:
    function OnLoad(eContext, numberPara, stringPara, datePara) {
        Xrm.Utility.alertDialog("传递过来的数字参数numberPara值是" + numberPara + ",类型是" + typeof (numberPara) + ";
    传递过来的字符参数stringPara值是" + stringPara + ",类型是" + typeof (stringPara) + ";
    传递过来的日期参数datePara值是:" + new Date(datePara).toLocaleString());
    }
    当然啦,插入的Web资源还可以传递参数,我这里设置如下:
     
    可以看到既选择了 将记录对象类型代码和唯一标识符作为参数传递 ,还在 自定义参数(数据) 部分定义了一些自定义参数传递过去,我可以使用如下代码获取到值:
    var queryStrings = GetGlobalContext().getQueryStringParameters();
    var alertStr = [];
    for (var prop in queryStrings) {
        if (prop.toLocaleLowerCase() != "data") {
            alertStr.push("传递的参数名是" + prop + ";参数值是:" + queryStrings[prop]);
        }
        else {
            var dataParaArray = queryStrings[prop].toString().split('&');
            for (var i = 0; i < dataParaArray.length; i++) {
                alertStr.push("传递的参数名是" + dataParaArray[i].split('=')[0] + ";参数值是:" + dataParaArray[i].split('=')[1]);
            }
        }
    }
    Xrm.Utility.alertDialog(alertStr.join("
    "));
    获取到的结果如下:
     
     可以看到如果选中了 将记录对象类型代码和唯一标识符作为参数传递 ,则会传递参数OrgLCID,UserLCID, id, orgname, type, typename 参数过来。
    注意,从V9.0 开始,Xrm.Page.context.getQueryStringParameters 不再推荐使用了(请参考官方的 Important changes (deprecations) coming in Dynamics 365 Customer Engagement ),可以参考下面的函数来获取,函数来自David Walsh 的 Get Query String Parameters with JavaScript
            function getUrlParameter(name) {
                name = name.replace(/[[]/, '\[').replace(/[]]/, '\]');
                var regex = new RegExp('[\?&]' + name + '=([^&#]*)');
                var results = regex.exec(location.search);
                return results === null ? '' : decodeURIComponent(results[1].replace(/+/g, ' '));
            };

     

  • 相关阅读:
    男人只说三分话、留的七分打天下。
    sqlmap实例拿站
    sqlmap使用笔记
    rpm安装删除简介
    Zookeeper技术介绍
    linux下各文件夹的结构说明及用途介绍:
    每个系统管理员都要知道的 30 个 Linux 系统监控工具
    常用命令
    安装gitlab管理自己的代码
    速成Git
  • 原文地址:https://www.cnblogs.com/luoyong0201/p/Dynamics_365_Pass_Parameter_to_Web_Resource_Event_Handler.html
Copyright © 2020-2023  润新知