
Dependant Optionset
Prerequiresets
List |
Name |
|
Option |
Option Value |
FirstList |
new_firstlist |
 |
Animals Cars
|
100.000.000 100.000.001
|
List |
Name |
|
Option |
Option Value |
SecondList |
new_secondlist |
 |
Cow Horse Sheep Ford Toyota BMW VW
|
100.000.000 100.000.001 100.000.002 100.000.003 100.000.004 100.000.005 100.000.006
|
Main Code
//******************************************************************
//* Add options to list (OptionSet)
//*
//* PARAMETERS
//* optionSetName : Name of the field (Optionset)
//* optionValue : Value of the Option
//* optionText : Text of the Option
//* optionIndex : Option Index (Don't use 0 this is used for non value)
//*
//* RETURNVALUES
//* none
//*
//******************************************************************
function addOptionsToOptionSet(optionSetName, optionValue, optionText, optionIndex) {
var optionsetSubType = Xrm.Page.ui.controls.get(optionSetName);
var newOption = new Object();
newOption.value = optionValue;
newOption.text = optionText;
optionsetSubType.addOption(newOption, optionIndex);
}
Calling Code
//******************************************************************
//* Get and set options ("FirstList" and "SecondList")
//*
//* PARAMETERS
//* none
//*
//* RETURNVALUES
//* none
//*
//******************************************************************
function setSecondList() {
var optionsetFirstList = Xrm.Page.getAttribute("new_firstlist").getValue();
var nameSecondList = "new_secondlist";
var optionsetSecondList = Xrm.Page.ui.controls.get(nameSecondList);
// Clear all options in the second list
optionsetSecondList.clearOptions();
optionsetSecondList.setDisabled(false);
// Fill the second list based on value in the first list
switch (optionsetFirstList) {
case 100000000: /*Animals*/
addOptionsToOptionSet(nameSecondList, 100000000, 'Cow', 1);
addOptionsToOptionSet(nameSecondList, 100000001, 'Horse', 2);
addOptionsToOptionSet(nameSecondList, 100000002, 'Sheep', 3);
break;
case 100000001: /*Cars*/
addOptionsToOptionSet(nameSecondList, 100000003, 'Ford', 1);
addOptionsToOptionSet(nameSecondList, 100000004, 'Toyota', 2);
addOptionsToOptionSet(nameSecondList, 100000005, 'BMW', 3);
addOptionsToOptionSet(nameSecondList, 100000006, 'VW', 4);
break;
default: /*Nothing selected og Null selected*/
optionsetSecondList.setDisabled(true);
}
}
Initializing Code
//******************************************************************
//* Initializing code who runs when form is loaded
//*
//* PARAMETERS
//* None
//*
//* RETURNVALUES
//* None
//*
//******************************************************************
function initForm() {
// Handle Form Type Variables
var CRM_FORM_TYPE_CREATE = 1;
var CRM_FORM_TYPE_UPDATE = 2;
var CRM_FORM_TYPE_READ_ONLY = 3;
var CRM_FORM_TYPE_DISABLED = 4;
var CRM_FORM_TYPE_QUICK_CREATE = 5;
var CRM_FORM_TYPE_BULK_EDIT = 6;
var crmFormType = Xrm.Page.ui.getFormType();
// Setup Dependant Lists
if (crmFormType == CRM_FORM_TYPE_CREATE) {
// Initialize dependant list
setSecondList();
} else {
// Disable second list
Xrm.Page.ui.controls.get("new_secondlist").setDisabled(true);
}
}