MS CRM 2011 用Jscript打开新窗口的几种方法

在CRM中,我们经常遇到这样的情况,点击一个按钮,需要弹出一个新的窗口。比如在客户中添加新联系人:

在MS CRM2011中,有以下几种方法可以打开一个新的窗口:

(1) Xrm.Utility.openEntityForm

(2) window.open

(3) openObj

前两种是在SDK中支持的,尤其推荐使用第一种,但要注意Xrm.Utility这个对象只在Rollup 8以后的版本才支持。这里顺便列出来CRM 2011各个Rollup的版本号:

Build Version
RTM: 5.0.9688.583 (English)

Rollup 1 - 5.0.9688.1045 &">nbsp;  
Rollup 2 - 5.0.9688.1155 -> CRM2011-Server-v2 - 5.0.9688.1157    
Rollup 3 - 5.0.9688.1244    
Rollup 4 - 5.0.9688.1450    
Rollup 5 - 5.0.9688.1533    
Rollup 6 - 5.0.9690.1992 -> has been re-released (original release version: 5.0.9689.1985)    
Rollup 7 - 5.0.9690.2165    
Rollup 8 - 5.0.9690.2243    
Rollup 10 - 5.0.9690.2740 -> has been re-released (original release version: 5.0.9690.2730)

Note
Update Rollup 9 was not released because of a delay in the Q2 Service Update.    
Update Rollup 10 fixes all the issues that would have been included in Update Rollup 9

下面来分别看一下这几个方法的使用:

(1) Xrm.Utility.openEntityForm

我们利用该方法来自己实现一个在客户中添加联系人的按钮。该方法具体参见SDK – “Set Field Values Using Parameters Passed to a Form”。

var parameters = {}; // Two Options 字段 parameters["donotemail"] = 1; // Text 字段 parameters["firstname"] = "Aaron"; parameters["lastname"] = "Babbitt"; // currency字段 parameters["creditlimit"] = 10000; // Option Set 字段 parameters["gendercode"] = 1; // Date 字段 parameters["birthdate"] = "1/31/1990"; // simple lookup parameters["preferredserviceid"] = "2CBBB5B6-DA13-E
211-905F-00155DA83B32"; parameters["preferredserviceidname"] = "Accountbezoek"; // customer lookup parameters["parentcustomerid"] = Xrm.
Page.data.entity.getId(); parameters["parentcustomeridname"] = Xrm.Page.getAttribute("name").getValue(); parameters["parentcustomer
idtype"] = "account"; // owner lookup parameters["ownerid"] = "D1655DCE-F90E-E211-905F-00155DA83B32"; parameters["owneridname"] = "Daisy Cabell"; parameters["owneridtype"] = "system
user"; Xrm.Utility.openEntityForm("contact", null, parameters);

注意partylist lookup和regarding lookup都不可以添加到openEntityForm 的参数中,因为partylist lookup和regarding lookup都是multiple lookup。

(2) window.open:

window.open方法虽然用起来不是很美观,但是可以控制feather(控制新窗口是怎样打开的),具体可以参见下面的例子。另外要注意参数要进行编码,这里用的是encodeURIComponent方法。在之前的文章中,我还介绍过使用CrmEncodeDecode.CrmNameValueEncode方法来进行编码。这两个方法都可以使用。解码的方法就分别为decodeURIComponent和CrmEncodeDecode.CrmNameValueDecode。

// Two Options 字段 var extraqs = "donotemail=1"; // Text 字段 extraqs += "&firstname=Aaron"; extraqs += "&lastname=Babbitt"; // currency字段 extraqs += "&creditlimit=10000"; // Option Set 字段 extraqs += "&gendercode=1"; // Date 字段 extraqs += "&birthdate=1/31/1990"; // simple lookup extraqs += "&preferredserviceid={2CBBB5B6-DA13-E211-905F-00155DA83B32}"; extraqs += "&preferredserviceidname=Accountbezoek"; // customer lookup extraqs += "&parentcustomerid=" + Xrm.Page.data.entity.getId(); extraqs += "&parentcustomeridname=" + Xrm.Page.getAttribute("name").getValue(); extraqs += "&parentcustomeridtype=account"; // owner lookup extraqs += "&ownerid={D1655DCE-F90E-E211-905F-00155DA83B32}"; extraqs += "&owneridname=Daisy Cabell"; extraqs += "&owneridtype=systemuser"; // Open the window. var
features = "location=no,menubar=no,status=no,toolbar=no"; window.open("/main.
aspx?etn=contact&pagetype=entityrecord&extraqs=" + encodeURIComponent(extraqs), "_blank", features, false);

(3) openObj:

这个方法在我之前的文章中也介绍过(是使用F12 Developer Tools工具来剖析出来的方法 )。由于这个方法并不被SDk所支持,所以还是建议大家使用前两种方法。

时间: 2024-10-23 05:36:33

MS CRM 2011 用Jscript打开新窗口的几种方法的相关文章

MS CRM 2011 在CRM中使用REST Endpoint

CRM提供了两种http://www.aliyun.com/zixun/aggregation/14280.html">WCF Web Service,一个是Organization Service,使用的是SOAP协议,另一个是Organization Data Service,使用的是OData(REST)协议.我们在为CRM写插件(plugin)的时候,通常都要用到第一种web service,而在客户端进行编程的时候就要使用到Organization Data Service了.O

js打开新窗口方法整理

 js打开新窗口的方法有很多,本文大致整理了一些,需要的朋友可以参考下 window.location="aaa.aspx"    上面的方法只能在当前页打开,如果要在新的页面打开,最简单的是用以下方法    form.target="_blank";  form.action="aaa.aspx";  form.submit();    window.top.location=url 可以在iframe中的页面在父窗口刷新打开    windo

js打开新窗口方法整理_javascript技巧

window.location="aaa.aspx" 上面的方法只能在当前页打开,如果要在新的页面打开,最简单的是用以下方法 form.target="_blank"; form.action="aaa.aspx"; form.submit(); window.top.location=url 可以在iframe中的页面在父窗口刷新打开 window.open方法可控制的样式丰富,比如我们可以控制窗口显示的大小,窗口显示的内容,以及位置等等.都是

如何使用 MS CRM 2011 中的目标(Goal) -- 第一节

Goal是CRM 2011中的一个新特性.任何新特性都有一个共同点,就是需要学习曲线.下面就让我们看一下,在CRM 2011中如何使用和管理Goal. 我们先通过一个简单的例子来对Goal有一个初步的认识.我们打开一个CRM范例数据中的一个goal记录," Q3 目標 (範例)". &http://www.aliyun.com/zixun/aggregation/37954.html">nbsp; 打开Q3的表单后,可以看到几个重要的数据,Goal Metric

不再闹心 IE无法打开新窗口现象与解决

长夜漫漫,无心睡眠,小菜打算上网看看新闻.启动IE,打开常去的网站,新闻真不少.点击一条新闻,新窗口没有弹出来,再点,还是没动静.小菜连忙在QQ群中呼救,很快故障就解决了. 一.绿色惊叹号 1.故障现象 点击页面中的二级链接后,鼠标指针显示一个绿色的惊叹号,但很快会消失. 2.故障原因 用户安装过第三方弹出广告阻止工具或其他捆绑弹出广告阻止工具的软件,如3721弹出广告阻止工具条.其可减少弹出广告骚扰,同时也会导致IE二级链接无法打开. 3.故障解决 在工具栏3721弹出窗口拦截工具条的"已拦截

vBulletin HACK----显示话题大小和打开新窗口于论坛索引页

vBulletin HACK ----显示话题大小和打开新窗口于论坛索引页 作者:gogosoft <显示话题大小> 原因:1.1.4版本中没有此功能,而部分用户会以此作为是否查看话题的参考因素. 优点:只需要增加几行代码就可以. 缺点:因为每次显示论坛索引页都需要对该页的话题全部计算大小,所以可能会对服务器造成若干的影响. 自评:这是一个小功能,可有可无,实用与否见仁见智. 步骤: ⒈打开 forumdisplay.php ,查找" if ($announcement=$DB_si

使用window.open自动打开新窗口并且自动关闭新窗口

Html代码 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> New Document </TITLE> <META NAME="Generator" CONTENT="EditPlus"> <META NAME="Author"

ajax怎么打开新窗口具体如何实现

 本文为大家介绍下ajax如何打开新窗口,下面有段代码,需要的朋友可以了解下  代码如下: var newwindow=window.open('about:blank');  jQuery.ajax({  type: 'POST',  url: 'clickRate.action',  dataType:'json',  data:{  'appId': appId  },  success: function(data){  if (data.success == true) {  neww

js使用post 方式打开新窗口

这篇文章主要介绍了js使用post 方式打开新窗口的相关资料,需要的朋友可以参考下 js中一般新打开窗口很简单直接window.open(url);就可以了, 但是由于我希望传递参数到服务端,而且参数看起来很长一串,而且get方式的提交参数长度是有限制的,因此我有以下需求: 1,js中实现post提交 2,返回的页面在新窗口显示 首先我是这么做的: 代码如下: $.ajax({ type: "POST", url: '${contextPath}/analyse/detail.do',