关注本人微信和易信公众号: 微软动态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. 订单结算submit_order.php扣库存,扣账号金额(学生笔记)

    <?php header("Content-type: text/html; charset=utf-8"); session_start(); include_once(& ...

  2. Vue.js+vue-element搭建属于自己的后台管理模板:创建一个项目(四)

    Vue.js+vue-element搭建属于自己的后台管理模板:创建一个项目(四) 前言 本章主要讲解通过Vue CLI 脚手架构建工具创建一个项目,在学习Vue CLI之前我们需要先了解下webpa ...

  3. JS基础语法---作用域链

    从函数嵌套来分析: (层数一般5层内) var num=10; function f1() { var num=20; function f2() { var num=30; function f3( ...

  4. Vulnhub DC-1靶机渗透学习

    前言 之前听说过这个叫Vulnhub DC-1的靶机,所以想拿来玩玩学习,结果整个过程都是看着别人的writeup走下来的,学艺不精,不过这个过程也认识到,学会了很多东西. 所以才想写点东西,记录一下 ...

  5. Thymeleaf常用语法:模板片断

    系统中的很多页面有很多公共内容,例如菜单.页脚等,这些公共内容可以提取放在一个称为“模板片断”的公共页面里面,其它页面可以引用这个 “模板片断”内容. 一.模板片断的定义 可以是html标签,也可以使 ...

  6. NFS共享储存

    目录 NFS 为什么要使用共享存储 集群没有共享存储的情况 集群有共享存储 NFS的工作原理 NFS部署 1.环境准备 2.关闭防火墙和selinux 3.部署nfs服务端 4.启动rpcbind 5 ...

  7. 跑健壮性Monkey,出现一次Crash全过程-日志分析-董浩-Dotest

    最近带着学生做的某个项目,跑健壮性Monkey,出现一次Crash全过程-日志分析: 准备:搭建adb环境.安装实际测试包:开始: Monkey命令: 1 2 3 4 5 adb shell monk ...

  8. go语言设计模式之memento

    memento.go package memento import ( "fmt" ) type State struct { Description string } type ...

  9. Java实战|Tomcat+Servlet+Sql开发简单网站,从配置环境开始

    课题描述: Java实验五 Servlet (继续使用实验四中创建的students数据库和其中的scores表) 使用Tomcat作为Web服务器和Servlet容器,使用SQL Server/My ...

  10. 并发相关基础知识 - MESI - JMM

    一.CPU多级缓存 CPU的频率太快了,快到主存跟不上,这样在处理器时钟周期内,CPU常常需要等待主存,浪费资源,所以cache的出现,是为了缓解CPU和内存之间速度的不匹配问题.CPU多级缓存配置( ...