Dynamics 365 添加和删除Optionset
为什么我们需要在Dynamics 365中添加和删除选项集值?
考虑一个业务场景,我们需要根据既定逻辑动态地添加和删除一个选项值。
在下面的例子中,我们有两个名为“选项1”和“选项2”的选项集。
在这里,我们必须根据“选项1”中选择的值过滤“选项2”的值。
选项1和选项2字段信息:
选项1
gdh_optionset_a
Name | Value |
---|---|
国产车 | 10 |
合资车 | 20 |
选项2
gdh_optionset_b
Name | Value |
---|---|
比亚迪 | 10 |
奇瑞 | 20 |
五菱 | 30 |
马自达 | 40 |
丰田 | 50 |
宝马 | 60 |
过滤逻辑:
选了国产车,只能选择:比亚迪、奇瑞、五菱
选了合资车,只能选择:马自达、丰田、宝马
JavaScript
if (typeof Demo == "undefined") {
Demo = { __namespace: true };
}
Demo = {
_executionContext: null,
_formContext: null,
OnLoad: function (executionContext) {
_executionContext = executionContext;
_formContext = executionContext.getFormContext();
_formContext.getAttribute("gdh_optionset_a").addOnChange(Demo.SetOptionsetB);
Demo.SetOptionsetB();
},
SetOptionsetB: function () {
//1.取选项2,再去掉选项2
var BYD = _formContext.getAttribute("gdh_optionset_b").getOption(10);
var CheryAutomobile = _formContext.getAttribute("gdh_optionset_b").getOption(20);
var Wuling = _formContext.getAttribute("gdh_optionset_b").getOption(30);
var Mazda = _formContext.getAttribute("gdh_optionset_b").getOption(40);
var Toyota = _formContext.getAttribute("gdh_optionset_b").getOption(50);
var BMW = _formContext.getAttribute("gdh_optionset_b").getOption(60);
_formContext.getControl("gdh_optionset_b").removeOption(10);
_formContext.getControl("gdh_optionset_b").removeOption(20);
_formContext.getControl("gdh_optionset_b").removeOption(30);
_formContext.getControl("gdh_optionset_b").removeOption(40);
_formContext.getControl("gdh_optionset_b").removeOption(50);
_formContext.getControl("gdh_optionset_b").removeOption(60);
//2.根据选项1选项,添加选项1选项
var optionset_a = _formContext.getAttribute("gdh_optionset_a").getValue();
if(optionset_a == 10){
_formContext.getControl("gdh_optionset_b").addOption(BYD);
_formContext.getControl("gdh_optionset_b").addOption(CheryAutomobile);
_formContext.getControl("gdh_optionset_b").addOption(Wuling);
}else if(optionset_a == 20){
_formContext.getControl("gdh_optionset_b").addOption(Mazda);
_formContext.getControl("gdh_optionset_b").addOption(Toyota);
_formContext.getControl("gdh_optionset_b").addOption(BMW);
}
},
};
效果: