Dynamic CRM 2013学习笔记(十七)JS读写各种类型字段方法及技巧

我们经常要对表单里各种类型的字段进行读取或赋值,下面列出各种类型的读写方法及注意事项:

1. lookup 类型

  • 清空值
var state = Xrm.Page.getAttribute("new_state");
if (state != null)
{
Xrm.Page.getAttribute("new_state").setValue(null);
}
  • 读取值
var state = new Array();
state = Xrm.Page.getAttribute("new_state").getValue();
if(state != null)
{
var stateText = state[0].name;
var stateId = state[0].id;
var stateType = state[0].entityType;
alert("State is: " + stateText + ", ID: " + stateId + "
of type: " + stateType);
}

特别要注意这里取出来的值,一定要加[0],不然取不到值

  • 赋值
var state = new Array();
state[0] = new Object();
state[0].id = "{BA0762E4-64D2-E111-909E-00155D6C871A}";
state[0].name = "New York";
state[0].entityType = "new_state";
Xrm.Page.getAttribute("new_state").setValue(state);
 
2. Option sets
  • 读取值
var sval = Xrm.Page.getAttribute("new_optionset").getSelectedOption().text;
var sval = Xrm.Page.getAttribute("new_optionset").getSelectedOption().value;
分别读取显示文本和值
另外,我们还可以用下面的方法来获取text和value:
var sval = Xrm.Page.getAttribute("new_optionset").getText();
var sval = Xrm.Page.getAttribute("new_optionset").getValue();
 
  • 赋值
function SetOSValue(osName, osLabel)
{
var options = Xrm.Page.getAttribute(osName).getOptions();
for(i = 0; i < options.length; i++)
{
if (options[i].text == osLabel)
Xrm.Page.getAttribute(osName).setValue(options[i].value);
}
}
 
3. Datetime
  • 读取值
var myContactBirthday;
myContactBirthday = Xrm.Page.getAttribute("birthdate").getValue();
alert("Contact birthday is: " + myContactBirthday);
var year = myContactBirthday.getFullYear();
var month = myContactBirthday.getMonth(); // from 0 to 11
var day = myContactBirthday.getDate(); // from 1 to 31
month = month + 1;
alert("Year: " + year + ", Month: " + month + ", Day: " + day);
 
  • 赋值
var currentDateTime = new Date();
Xrm.Page.getAttribute("new_myDate").setValue(currentDateTime);
 
4. Currency
  • 读取值
var myCurrencyField;
myCurrencyField = Xrm.Page.getAttribute("new_currencyfield").getValue();
alert("The value of this Currency field is: " + myCurrencyField);
 
  • 赋值
var myCurrencyValue = 6.25;
Xrm.Page.getAttribute("new_currencyfield").setValue(parseFloat(myCurrencyValue));
 
 
5. number, text
  • 读取值
var myNumber;
myNumber = Xrm.Page.getAttribute("new_number").getValue();
alert("The number in the field is: " + myNumber);
 
  • 赋值
 
Xrm.Page.getAttribute("new_text").setValue("abc");

Xrm.Page.getAttribute("new_number").setValue(123);
 
Dynamic CRM 2013学习笔记 系列汇总
 
 
时间: 2024-10-29 19:10:37

Dynamic CRM 2013学习笔记(十七)JS读写各种类型字段方法及技巧的相关文章

Dynamic CRM 2013学习笔记(十八)根据主表状态用JS控制子表自定义按钮

有时要根据主表的审批状态来控制子表上的按钮要不要显示,比如我们有一个需求审批通过后就不能再上传文件了. 首先打开Visual Ribbon Editor, 如下图,我们可以利用Enable Rules –> CustomRule 用js来控制按钮是否显示:   js function: 首先用odata取出主表的状态,然后根据主表的状态来判断是否显示: var approvalStatus = null; function controlUpload(){ var marketingPlan =

Dynamic CRM 2013学习笔记(二十八)用JS动态设置字段的change事件、必填以及可见

我们知道通过界面设置字段的change事件,是否是必填,是否可见非常容易.但有时我们需要动态地根据某些条件来设置,这时有需要通过js来动态地控制了. 下面分别介绍如何用js来动态设置.   一.动态设置字段的change事件 // form on load event function onLoad() { init();   pageAttr.delivery_from.addOnChange(deliveryFromChange); pageAttr.type.addOnChange(typ

Dynamic CRM 2013学习笔记(九)CrmFetchKit.js介绍:Fetchxml、多表联合查询, 批量更新

CrmFetchKit.js是一个跨浏览器的一个类库,允许通过JavaScript来执行fetch xml的查询,还可以实现批量更新,分页查询等.目前已支持Chrome 25, Firefox 19 和 IE9/10 . 它的最大优势是可以通过fetchxml 来查询,这样我们就可以实现真正的多表联合查询,虽然可以用OData终结点的$expand来进行多表的联合查询,但这种方式没办法过滤多表的条件,它只能过滤主表的条件. 下面来看下简单的多表查询的例子: 1.首先定义一个fetchxml: 1

Dynamic CRM 2013学习笔记(二十七)无代码 复制/克隆方法

前面介绍过二种复制/克隆方法:<Dynamic CRM 2013学习笔记(十四)复制/克隆记录> 和<Dynamic CRM 2013学习笔记(二十五)JS调用web service 实现多条记录复制(克隆)功能>. 第一种方法,是复制单个同类型实体:第二种方法是在list界面,复制多条记录到另一个实体:这二种方法都要coding. 下面介绍一种复制方法,无需代码,就可以在创建时,把另一实体的相关信息克隆出来. 一.需求 现有二个实体,一个RC, 一个RC Change(RC的子实

Dynamic CRM 2013学习笔记(十六)用JS控制Tab可见,可用

一个Form里经常会有好几个Tab,有时要根据一些条件设置哪些Tab可用,可见.下面就介绍下如何用JS对Tab进行控制. 1. 控制可见 function setTabVisableByName(tabName, flag) { var control = Xrm.Page.ui.tabs.get(tabName); control.setVisible(flag); } 这里flag是true或false 2. 控制可用 看了上面的可见代码,是不是以为可用也这么简单呢?其实我们把上面的setV

Dynamic CRM 2013学习笔记(二十三)CRM JS智能提示(CRM 相关的方法、属性以及页面字段),及发布前调试

我们知道在CRM的js文件里引用XrmPageTemplate.js后,就可以实现智能提示,但每个js文件都引用太麻烦了,其实可以利用vs的功能让每个js文件自动实现智能提示CRM的js: 另外,我们调试js,发布js文件也是比较繁琐的事情,最好的办法是全部调好,再发布上去,本文介绍用firefox + firebug + frame可以很方便地调试CRM js,全部调好后,再上传js,明显可以加快开发的速度. 1. 智能提示 CRM相关的方法属性的vs 里加上XrmPageTemplate.j

Dynamic CRM 2013学习笔记(二十三)CRM JS智能提示,及firebug frame调试

我们知道在CRM的js文件里引用XrmPageTemplate.js后,就可以实现智能提示,但每个js文件都引用太麻烦了,其实可以利用vs的功能让每个js文件自动实现智能提示CRM的js: 另外,我们调试js,发布js文件也是比较繁琐的事情,最好的办法是全部调好,再发布上去,本文介绍用firefox + firebug + frame可以很方便地调试CRM js,全部调好后,再上传js,明显可以加快开发的速度.   1. vs 里加上XrmPageTemplate.js: http://yunp

Dynamic CRM 2013学习笔记(三十七)自定义审批流7 - 初始化(整套审批流下载、安装)

  前面介绍了自定义审批流的配置.使用,这篇介绍下如何进行初始化.   一. 下载   从下面的地址下载整个审批流: http://yunpan.cn/cJR65k2Grj3Ss  访问密码 8065 下载完后,一共有三块内容:   二.初始化 1. Web 把CRMWFExtends文件夹copy到ISV目录下 默认的目录应该是C:\Program Files\Microsoft Dynamics CRM\CRMWeb\ISV   2. 解决方案 导入solution:ApprovalWork

Dynamic CRM 2013学习笔记(四十六)简单审批流的实现

前面介绍过自定义审批流: Dynamic CRM 2013学习笔记(十九)自定义审批流1 - 效果演示 Dynamic CRM 2013学习笔记(二十一)自定义审批流2 - 配置按钮 Dynamic CRM 2013学习笔记(三十二)自定义审批流3 - 节点及实体配置 Dynamic CRM 2013学习笔记(三十三)自定义审批流4 - 规则节点 -有分支的流程处理 Dynamic CRM 2013学习笔记(三十四)自定义审批流5 - 自动邮件通知 Dynamic CRM 2013学习笔记(三十