这节介绍onchange事件的编程,在前面的章节中提过:Dynamics CRM 脚本编程基本上是围绕3个点来进行开发的。它们分别是:onload,onsave,onchange。onchange事件是正对“实体”属性的,和Javascript中的onchange事件一样,都是在控件值发生改变时而触发的。
接下来我们就简单定义一个onchange事件吧,这次我们依然选择“客户”实体进行开发。
我们为“客户”实体的属性“主要电话”添加onchange事件,该事件的职责为:如果“主要电话”的值不为空,就将“主要电话”中的值自动赋给属性“其他电话”和属性“传真”。
具体操作如下:
图4-1
图4-2
图 4-3
图 4-4
图 4-5
图 4-6 编辑“onchange”事件触发时需要调用的函数。
图 4-7
图4-8 为属性“主要电话”添加onchange事件
图 4-9 为“主要电话”添加完onchange事件后,回到表单编辑窗口进行“保存”和“发布”操作。
图 4-10
图 4-11
该节涉及的代码:
function telephone1_onchange()
{
//获取属性"主要电话"的值
var telephone1=Xrm.Page.getControl("telephone1").getAttribute().getValue();
//获取属性"其他电话"在表单中的控件
var telephone2=Xrm.Page.getControl("telephone2");
//获取属性"传真"在表单中的控件
var fax=Xrm.Page.getControl("fax");
if(telephone1 != null)
{
//赋值
telephone2.getAttribute().setValue(telephone1);
fax.getAttribute().setValue(telephone1);
}
}
小结:按照上图的顺序操作下来就可以为“主要电话”添加一个onchange事件了。在日常的开发中,onchange事件常用来验证输入是否正确或保证表单上某“属性值”的准确性。如:A+B=C,为A和B添加onchange事件来保证公式"A+B"的准确性。