Dynamics CRM 2015 通过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代码:

<pre name="code" class="javascript">//获取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.clea
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现省市级三级联下拉框,需要以下步骤: 1. 在HTML中创建3个下拉框,分别用于显示省、市、区县。 2. 创建一个JavaScript数,用于存储省市区县数据。 3. 给省下拉框绑定change事件,当省下拉框的值发生改变时,根据选中的省份动态生成对应的市下拉框选项。 4. 给市下拉框绑定change事件,当市下拉框的值发生改变时,根据选中的市动态生成对应的区县下拉框选项。 5. 在JavaScript中编写函数,根据选中的省市区县,获取对应的数据并填充到对应的下拉框中。 以下是示例代码: HTML部分: ``` <select id="province"></select> <select id="city"></select> <select id="district"></select> ``` JavaScript部分: ``` // 省市区县数据 var data = { "北京市": { "市辖区": ["东城区", "西城区", "崇文区", "宣武区", "朝阳区", "海淀区", "丰台区", "石景山区", "房山区", "通州区", "顺义区", "昌平区", "大兴区", "怀柔区", "平谷区"], "县": ["密云县", "延庆县"] }, "浙江省": { "杭州市": ["上城区", "下城区", "江干区", "拱墅区", "西湖区", "滨江区", "萧山区", "余杭区", "桐庐县", "淳安县", "建德市", "富阳市", "临安市"], "宁波市": ["海曙区", "江东区", "江北区", "北仑区", "镇海区", "鄞州区", "象山县", "宁海县", "余姚市", "慈溪市", "奉化市"], "温州市": ["鹿城区", "龙湾区", "瓯海区", "洞头县", "永嘉县", "平阳县", "苍南县", "文成县", "泰顺县", "瑞安市", "乐清市"], "嘉兴市": ["南湖区", "秀洲区", "嘉善县", "海盐县", "海宁市", "平湖市", "桐乡市"], "湖州市": ["吴兴区", "南浔区", "德清县", "长兴县", "安吉县"], "绍兴市": ["越城区", "绍兴县", "新昌县", "诸暨市", "上虞市", "嵊州市"], "金华市": ["婺城区", "金东区", "武义县", "浦江县", "磐安县", "兰溪市", "义乌市", "东阳市", "永康市"], "衢州市": ["柯城区", "衢江区", "常山县", "开化县", "龙游县", "江山市"], "舟山市": ["定海区", "普陀区", "岱山县", "嵊泗县"], "台州市": ["椒江区", "黄岩区", "路桥区", "玉环县", "三门县", "天台县", "仙居县", "温岭市", "临海市"], "丽水市": ["莲都区", "青田县", "缙云县", "遂昌县", "松阳县", "云和县", "庆元县", "景宁畲族自治县", "龙泉市"] } }; // 初始化省下拉框选项 function initProvince() { var provinceSelect = document.getElementById("province"); for (var province in data) { var option = document.createElement("option"); option.value = province; option.text = province; provinceSelect.add(option); } // 触发省下拉框change事件 provinceSelect.onchange(); } // 根据省份生成市下拉框选项 function generateCity() { var provinceSelect = document.getElementById("province"); var citySelect = document.getElementById("city"); var province = provinceSelect.value; citySelect.innerHTML = ""; // 清空市下拉框选项 if (province in data) { var cities = data[province]; for (var city in cities) { var option = document.createElement("option"); option.value = city; option.text = city; citySelect.add(option); } } // 触发市下拉框change事件 citySelect.onchange(); } // 根据市生成区县下拉框选项 function generateDistrict() { var provinceSelect = document.getElementById("province"); var citySelect = document.getElementById("city"); var districtSelect = document.getElementById("district"); var province = provinceSelect.value; var city = citySelect.value; districtSelect.innerHTML = ""; // 清空区县下拉框选项 if (province in data && city in data[province]) { var districts = data[province][city]; for (var i = 0; i < districts.length; i++) { var option = document.createElement("option"); option.value = districts[i]; option.text = districts[i]; districtSelect.add(option); } } } // 绑定省下拉框change事件 document.getElementById("province").onchange = function() { generateCity(); }; // 绑定市下拉框change事件 document.getElementById("city").onchange = function() { generateDistrict(); }; // 初始化省下拉框选项 initProvince(); ``` 这个例子中,我们使用JavaScript数存储省市区县数据,并使用三个下拉框来展示省市区县信息。当省下拉框的值发生改变时,会自动根据选中的省份生成对应的市下拉框选项;当市下拉框的值发生改变时,会自动根据选中的市生成对应的区县下拉框选项
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值