Thursday, July 26, 2012

 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: