html5教程-DynamicsCRM2015通过JS控制下拉框实现国家省市级联

发布时间:2018-12-18 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了html5教程-DynamicsCRM2015通过JS控制下拉框实现国家省市级联脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。

前言:最近颇为烦恼的一个问题,特地记录下来以备参考。

方法一:

注:

通过 JS 操作CRM里类型为选项组的栏位方法:

1. 清除选项组:Xrm.Page.getControl("ControlId").clearOptions();

2. 添加选项组选项:Xrm.Page.getControl("ControlId").addOption({value:0, text:"显示的值"});

备注(重要):通过 JS 添加的选项组项的值(value)必须先在栏位对应的选项组中有对应的值,不然即使绑定了,选中也无法显示在页面上

操作页面选项时最终显示在页面上的值是“栏位对应的选项的值”;

意思是假设通过JS绑定了value=0,text="JS绑定"选项,而栏位中添加了个值为0的,标签为“栏位绑定”的选项;

当操作页面选中“JS绑定”时,CRM会自动查找预先绑定过的值,如果则无法显示,如果找到会显示对应的标签,如显示“栏位绑定”。

因为上面的问题,所以如果有别的更好方法,还是不建议用这个方法(听说lookup方法可以实现级联,再研究).

不多说,具体实现如下:

--------------------------------------------- 分割线 ---------------------------------------------

CRM JS代码:

 

 
 //获取select元素 var CountryId = "new_TestCountry"; var ProvinceId = "new_State"; var CityId = "new_test_city"; var CountryObj = Xrm.Page.getControl(CountryId ); var ProvinceObj = Xrm.Page.getControl(ProvinceId); var CityObj = Xrm.Page.getControl(CityId); //初始化地区下拉菜单 function initialize() { //清空已绑定值 CountryObj.clearOptions(); var CountryStr = "Australia,Belgium,Cambodia,Canada,Switzerland,China,France,Germany,Hong Kong,India,Indonesia,Ireland,Israel,Italy,Japan,Korea,Kuwait,Lebanon,Luxembourg,Macao,Malaysia,Netherlands,New Zealand,Philippines,Sweden,Singapore,South Africa,Sweden,Taiwan,Thailand,United Kiongdom,USA,Vietnam"; var CountryArray = CountryStr.split(','); for(var i=0; i= 100) i = i+1; val = i; break; } CountryObj.addOption({value:val, text:CountryArray[i]}); } ProvinceDel(); //绑定onchange事件 Xrm.Page.getAttribute(CountryId).addOnChange(function(){ CountrySelChange(); }) Xrm.Page.getAttribute(ProvinceId).addOnChange(function(){ ProvinceSelChange(); }) SetOptions(); } //加载下拉框设置的值(更新) function SetOptions() { var CountryEntity = Xrm.Page.data.entity.attributes.get(CountryId); var ProvinceEntity = Xrm.Page.data.entity.attributes.get(ProvinceId); var CityEntity = Xrm.Page.data.entity.attributes.get(CityId); CountryEntity.setValue(CountryEntity._attribute["$v_1"]); ProvinceEntity.setValue(ProvinceEntity._attribute["$v_1"]); CityEntity.setValue(CityEntity._attribute["$v_1"]); } //下拉列表改变事件 function CountrySelChange() { ProvinceDel(); ProvinceAdd(); } //下拉列表改变事件 function ProvinceSelChange() { CityDel(); CityAdd(); } //清空 function ProvinceDel() { ProvinceObj.clearOptions(); CityDel(); } //清空 function CityDel() { CityObj.clearOptions(); } //添加省 function ProvinceAdd() { var provinceList = []; provinceList[0] = [100, "china", "安徽省,澳门,北京市,重庆市,福建省,甘肃省,广东省,广西省,贵州省,海南省,河北省,黑龙江省,河南省,湖北省,湖南省,江苏省,江西省,吉林省,辽宁省,内蒙古自治区,宁夏回族自治区,青海省,山东省,上海市,陕西省,山西省,四川省,台湾省,天津市,香港,新疆维吾尔自治区,西藏自治区,云南省,浙江省"]; for(var i=0; i
 
打开对应的表单,找到最上方的 ‘表单属性’ ,在事件里添加表单程式库,将上述代码放入你的JS文件中,

 

然后在下方的事件处理常式中的OnLoad事件中添加程式库,调用上诉initialize 函数;

在完成表单后在OnSave事件中调用上述SaveForm函数。

栏位中添加三个栏位,名称分别是上方的 new_Country, new_Province, new_City;皆为选项组类型,

对应的选项组值需要和JS中对应,比如new_Country 有标签为“China”,值为100;new_Province 有标签为“安徽省”,值为100;标签为“福建省”,值为104……

========================== 方法分割线 =============================

方法二:

思考中……

前言:最近颇为烦恼的一个问题,特地记录下来以备参考。

方法一:

注:

通过 JS 操作CRM里类型为选项组的栏位方法:

1. 清除选项组:Xrm.Page.getControl("ControlId").clearOptions();

2. 添加选项组选项:Xrm.Page.getControl("ControlId").addOption({value:0, text:"显示的值"});

备注(重要):通过 JS 添加的选项组项的值(value)必须先在栏位对应的选项组中有对应的值,不然即使绑定了,选中也无法显示在页面上

操作页面选项时最终显示在页面上的值是“栏位对应的选项的值”;

意思是假设通过JS绑定了value=0,text="JS绑定"选项,而栏位中添加了个值为0的,标签为“栏位绑定”的选项;

当操作页面选中“JS绑定”时,CRM会自动查找预先绑定过的值,如果则无法显示,如果找到会显示对应的标签,如显示“栏位绑定”。

因为上面的问题,所以如果有别的更好方法,还是不建议用这个方法(听说lookup方法可以实现级联,再研究).

不多说,具体实现如下:

--------------------------------------------- 分割线 ---------------------------------------------

CRM JS代码:

 

 
 //获取select元素 var CountryId = "new_TestCountry"; var ProvinceId = "new_State"; var CityId = "new_test_city"; var CountryObj = Xrm.Page.getControl(CountryId ); var ProvinceObj = Xrm.Page.getControl(ProvinceId); var CityObj = Xrm.Page.getControl(CityId); //初始化地区下拉菜单 function initialize() { //清空已绑定值 CountryObj.clearOptions(); var CountryStr = "Australia,Belgium,Cambodia,Canada,Switzerland,China,France,Germany,Hong Kong,India,Indonesia,Ireland,Israel,Italy,Japan,Korea,Kuwait,Lebanon,Luxembourg,Macao,Malaysia,Netherlands,New Zealand,Philippines,Sweden,Singapore,South Africa,Sweden,Taiwan,Thailand,United Kiongdom,USA,Vietnam"; var CountryArray = CountryStr.split(','); for(var i=0; i= 100) i = i+1; val = i; break; } CountryObj.addOption({value:val, text:CountryArray[i]}); } ProvinceDel(); //绑定onchange事件 Xrm.Page.getAttribute(CountryId).addOnChange(function(){ CountrySelChange(); }) Xrm.Page.getAttribute(ProvinceId).addOnChange(function(){ ProvinceSelChange(); }) SetOptions(); } //加载下拉框设置的值(更新) function SetOptions() { var CountryEntity = Xrm.Page.data.entity.attributes.get(CountryId); var ProvinceEntity = Xrm.Page.data.entity.attributes.get(ProvinceId); var CityEntity = Xrm.Page.data.entity.attributes.get(CityId); CountryEntity.setValue(CountryEntity._attribute["$v_1"]); ProvinceEntity.setValue(ProvinceEntity._attribute["$v_1"]); CityEntity.setValue(CityEntity._attribute["$v_1"]); } //下拉列表改变事件 function CountrySelChange() { ProvinceDel(); ProvinceAdd(); } //下拉列表改变事件 function ProvinceSelChange() { CityDel(); CityAdd(); } //清空 function ProvinceDel() { ProvinceObj.clearOptions(); CityDel(); } //清空 function CityDel() { CityObj.clearOptions(); } //添加省 function ProvinceAdd() { var provinceList = []; provinceList[0] = [100, "china", "安徽省,澳门,北京市,重庆市,福建省,甘肃省,广东省,广西省,贵州省,海南省,河北省,黑龙江省,河南省,湖北省,湖南省,江苏省,江西省,吉林省,辽宁省,内蒙古自治区,宁夏回族自治区,青海省,山东省,上海市,陕西省,山西省,四川省,台湾省,天津市,香港,新疆维吾尔自治区,西藏自治区,云南省,浙江省"]; for(var i=0; i
 
打开对应的表单,找到最上方的 ‘表单属性’ ,在事件里添加表单程式库,将上述代码放入你的JS文件中,

 

然后在下方的事件处理常式中的OnLoad事件中添加程式库,调用上诉initialize 函数;

在完成表单后在OnSave事件中调用上述SaveForm函数。

栏位中添加三个栏位,名称分别是上方的 new_Country, new_Province, new_City;皆为选项组类型,

对应的选项组值需要和JS中对应,比如new_Country 有标签为“China”,值为100;new_Province 有标签为“安徽省”,值为100;标签为“福建省”,值为104……

========================== 方法分割线 =============================

方法二:

思考中……

觉得可用,就经常来吧! 脚本宝典 欢迎评论哦! html5教程,巧夺天工,精雕玉琢。小宝典献丑了!

脚本宝典总结

以上是脚本宝典为你收集整理的html5教程-DynamicsCRM2015通过JS控制下拉框实现国家省市级联全部内容,希望文章能够帮你解决html5教程-DynamicsCRM2015通过JS控制下拉框实现国家省市级联所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: