Dependent Picklist i.e Two Picklists(when we select one value in first picklist then corresponding values will be displayed in second picklist):
function PicklistOneOnchange()
{
var picklistOneName = "new_section1"; //name of the first picklist
var picklistTwoName = "new_division1"; //name of the picklist with dynamic values
var picklistOne = Xrm.Page.getControl(picklistOneName);
var picklistOneAttribute = picklistOne.getAttribute();
var picklistTwo = Xrm.Page.getControl(picklistTwoName);
var picklistTwoAttribute = picklistTwo.getAttribute();
var picklistOneSelectedOption = picklistOneAttribute.getSelectedOption();
var picklistOneSelectedText = "";
if (picklistOneSelectedOption != null)
{
picklistOneSelectedText = picklistOneSelectedOption.text;
}
//This "if" statement stores the original values from the dynamic picklist.
//Very important if the user hasn't made a selection on the first picklist or if the selection changes
if (picklistTwo.flag == true)
{
picklistTwo.clearOptions();
var origOptions = picklistTwo.originalPicklistValues;
for (var i = origOptions.length - 1; i >= 0; i--)
{
if(origOptions[i].text != "")
{
picklistTwo.addOption(origOptions[i]);
}
}
}
else
{
picklistTwo.originalPicklistValues = picklistTwoAttribute.getOptions();
picklistTwo.flag = true;
}
if (picklistOneSelectedText != null && picklistOneSelectedText != "")
{
var picklistTwoOptions = picklistTwoAttribute.getOptions();
for (var i = picklistTwoOptions.length - 1; i >= 0; i--)
{
if (picklistTwoOptions[i].value != null && picklistTwoOptions[i].value != "")
{
var optionText = picklistTwoOptions[i].text;
var optionValue = picklistTwoOptions[i].value;
//BEGIN: If the picklist is set to HMO
if(picklistOneSelectedText == "Section A")
{
//Remove these values
if (optionText == "Division 05" || optionText == "Division 06")
picklistTwo.removeOption(optionValue);
}
}
//END: HMO Selection
}
}
}
No comments:
Post a Comment