关注本人微信和易信公众号: 微软动态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) + ";\n传递过来的字符参数stringPara值是" + stringPara + ",类型是" + typeof (stringPara) + ";\n传递过来的日期参数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("\n"));

获取到的结果如下:

可以看到如果选中了 将记录对象类型代码和唯一标识符作为参数传递 ,则会传递参数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, ' '));
};

在执行方法和Web资源中获取传递过来参数的值的更多相关文章

  1. web过滤器中获取请求的参数(content-type:multipart/form-data)

    1.前言: 1.1 在使用springMVC中,需要在过滤器中获取请求中的参数token,根据token判断请求是否合法: 1.2 通过requst.getParameter(key)方法获得参数值; ...

  2. Jmeter从一个Reply Message中获取N个参数的值,然后根据这个参数对后面的操作循环N次(ForEach Controller的用法)

    假设Reply Message是这样的: <root><result code="0" msg="success" /><m k= ...

  3. Java中url传递中文参数取值乱码的解决方法

    java中URL参数中有中文值,传到服务端,在用request.getParameter()方法,得到的常常会是乱码,这将涉及到字符解码操作. 方法一: http://xxx.do?ptname=’我 ...

  4. java web项目中 获取resource路径下的文件路径

    public GetResource{ String path = GetResource.class.getClassLoader().getResource("xx/xx.txt&quo ...

  5. web项目中获取spring的bean对象

    Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,如何在程序中不通过注解的形式(@Resource.@Autowired)获取Spring配置的bean呢? Bean工厂(c ...

  6. sql 中获取最后生成的标识值 IDENT_CURRENT ,@@IDENTITY ,SCOPE_IDENTITY 的用法和区别

    原文:sql 中获取最后生成的标识值 IDENT_CURRENT ,@@IDENTITY ,SCOPE_IDENTITY 的用法和区别 IDENT_CURRENT 返回为任何会话和任何作用域中的指定表 ...

  7. 创建dynamics CRM client-side (十三) - 在HTML Web Resource中获取form elements & 获取外部js文件

    上一节我们讨论到创建HTML Web Resource. 但是纯HTML的页面不能满足我们的需求, 所以今天我们来做在HTML Web Resource中获取form elements Please ...

  8. 要在一般处理程序中获取其他页面的session值

    1.要在一般处理程序中获取其他页面的session值,需要引用名空间: using System.Web.SessionState; 2.然后继承一个接口:IRequiresSessionState, ...

  9. AOP 环绕通知 (Schema-base方式) 和 AspectJ方式在通知中获取切点的参数

    环绕通知(Schema- base方式) 1.把前置通知和后置通知都写到一个通知中,组成了环绕通知 2.实现步骤: 2.1 新建一个类实现 MethodInterceptor 接口 public cl ...

随机推荐

  1. 保护模式中的PDE与PTE

    Windows内核分析索引目录:https://www.cnblogs.com/onetrainee/p/11675224.html 保护模式中的PDE与PTE 1. PDE与PTE的认知 我们在上一 ...

  2. ASP.NET MVC5基础-控制器(Controller)详解

    在上文ASP.NET MVC5基础 – MVC文件架构中我们简单了解了下控制器Controller的作用,本文我将详细介绍控制器Controller的使用方法. Controller的运行过程 上文我 ...

  3. Java从入门到精通系统书籍,吐血整理的,只要1元

    思诚为修身之本,而明善又为思诚之本 我会在支付宝联系你 付完款后在支付宝账单详情页 点击联系收款方.我会回复您下载链接.

  4. liunx用户环境初始化脚本

          liunx用户环境初始化脚本 编写生成脚本基本格式,包括作者,联系方式,版本,时间,描述等 [root@magedu ~]# vim .vimrc set ignorecase set c ...

  5. Linux-3.14.12内存管理笔记【构建内存管理框架(2)】

    前面构建内存管理框架,已经将内存管理node节点设置完毕,接下来将是管理区和页面管理的构建.此处代码实现主要在于setup_arch()下的一处钩子:x86_init.paging.pagetable ...

  6. centos 6.9 升级glibc动态库

    glibc是gnu发布的libc库,即c运行库,glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc.glibc除了封装linux操作系统所提供的系统服务外,它本身也提供 ...

  7. 【转载】C++:switch红色下划线,Error:控制传输跳过的实例化解决办法

    转载链接:https://blog.csdn.net/figoleon/article/details/50072029

  8. 怎么解决 hash 冲突

    开放定址法: 线性探测再散列 二次探测再散列 伪随机 再hash: 同时构造,多个不同的hash函数 链地址: 链表, 建立公共溢出区: 分为基本表和溢出表两个部分 开放散列(open hashing ...

  9. 房屋布局分析《Physics Inspired Optimization on Semantic Transfer Features: An Alternative Method for Room Layout Estimation》

    视觉算法在智能审核系统上的演进与实践 刘天悦 贝壳找房 / 资深工程师 https://static001.geekbang.org/con/56/pdf/1088777747/file/%E8%A7 ...

  10. Linux 命名管道

    前文中笔者介绍了管道,本文接着介绍命名管道.文中演示所用环境为 Ubuntu 18.04 desktop. 命名管道(named pipe)又被称为先进先出队列(FIFO),是一种特殊的管道,存在于文 ...