Dependent picklist in Aura

 ....Component....

<aura:component controller="MinorAssignment" implements="force:appHostable,flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId,forceCommunity:availableForAllPageTypes,force:lightningQuickAction" access="global" >

    <aura:attribute name="fName" type="string"/>

    <aura:attribute name="lName" type="string"/>

    <aura:attribute name="email" type="string"/>

    <aura:attribute name="phn" type="string"/>

    <aura:attribute name="selectedBusinessVertical" type="String"/>

    <aura:attribute name="selectedDivisionVertical" type="String"/>

    <aura:attribute name="selectedAreaOfDivision" type="String"/>

    <aura:attribute name="availableDivisionOfVertical" type="List"/>

    <aura:attribute name="availableAreaOfDivision" type="List"/>

    

    <div class="slds-box slds-box_small slds-theme_shade slds-theme_alert-texture slds-align_absolute-center" Style ="font-size:20px">General Information</div>

    <div class="slds-form slds-p-horizontal_large slds-p-vertical_small slds-m-top_medium" role="list">

        <div class="slds-form__row">

            <div class="slds-form__item" role="listitem">

                <div class="slds-form-element slds-form-element_horizontal slds-hint-parent">

                    <span class="slds-form-element__label">First Name</span>

                    <div class="slds-form-element__control" style="padding-left:70px;">

                        <lightning:input label="First Name" value="{!v.fName}" variant="label-hidden" required="true"/>

                    </div>

                </div>

            </div>

            <div class="slds-form__item" role="listitem">

                <div class="slds-form-element slds-form-element_horizontal slds-hint-parent">

                    <span class="slds-form-element__label">Last Name</span>

                    <div class="slds-form-element__control" style="padding-left:70px;">

                        <lightning:input label="Last Name" value="{!v.lName}" variant="label-hidden" required="true"/>

                    </div>

                </div>

            </div>

        </div>

    </div>

     <div class="slds-form slds-p-horizontal_large slds-p-vertical_small " role="list">

        <div class="slds-form__row">

            <div class="slds-form__item" role="listitem">

                <div class="slds-form-element slds-form-element_horizontal slds-hint-parent">

                    <span class="slds-form-element__label">Eamil</span>

                    <div class="slds-form-element__control" style="padding-left:60px;">

                        <lightning:input label="Eamil" value="{!v.email}" variant="label-hidden" required="true"/>

                    </div>

                </div>

            </div>

            <div class="slds-form__item" role="listitem">

                <div class="slds-form-element slds-form-element_horizontal slds-hint-parent">

                    <span class="slds-form-element__label">Phone</span>

                    <div class="slds-form-element__control" style="padding-left:60px;">

                        <lightning:input label="Phone" value="{!v.phn}" variant="label-hidden" required="true"/>

                    </div>

                </div>

            </div>

        </div>

    </div>

    <br> </br>

    <div class="slds-box slds-box_small slds-theme_shade slds-theme_alert-texture slds-align_absolute-center" Style ="font-size:20px">Industry Information</div>

    <div class="slds-form-element slds-form-element_horizontal slds-hint-parent">

        <div class="slds-form-element__control slds-m-top_medium" style="padding-left:40px;">

            

            <lightning:select name="BusinessVertical" value="{!v.selectedBusinessVertical}" onchange="{!c.getDivisionOfVertical}" label="Business Vertical" required="true">

                <option value="">choose one...</option>

                <option value="Finance">Finance</option> 

                <option value="HealthCare">HealthCare</option>

                <option value="Automobile">Automobile</option>

                <option value="Education">Education</option>

                <option value="TeleCommunications">TeleCommunications</option>

            </lightning:select>

             </div>

    </div>

      <div class="slds-form-element slds-form-element_horizontal slds-hint-parent">

        <div class="slds-form-element__control slds-m-top_medium" style="padding-left:40px;">

            <lightning:select name="DivisionOfVertical" value="{!v.selectedDivisionVertical}" onchange="{!c.getAreaOfDivision}" label="Division Of Vertical" required="true">

                <option value="">choose one...</option>

                <aura:iteration items="{!v.availableDivisionOfVertical}" var="c">

                    <option value="{!c}">{!c}</option>

                </aura:iteration>

            </lightning:select>

        </div>

    </div>

    

    <div class="slds-form-element slds-form-element_horizontal slds-hint-parent">

        <div class="slds-form-element__control slds-m-top_medium" style="padding-left:40px;">

            <lightning:select name="AreaOfDivision" value="{!v.selectedAreaOfDivision}" label="Area of Division">

                <option value="">choose one...</option>

                <aura:iteration items="{!v.availableAreaOfDivision}" var="a">

                    <option value="{!a}">{!a}</option>

                </aura:iteration>

            </lightning:select>

        </div>

    </div>

    <div class="slds-m-left_small">

        <lightning:button aura:Id="SaveBtn" label="save" onclick="{!c.saveContact}" variant="Destructive" />

    </div>

</aura:component>


....Controller.js....


({

    getDivisionOfVertical: function(component, event, helper) {

        helper.getDivisionOfVerticalhelper(component, event, helper);

    },

    

    getAreaOfDivision: function(component, event, helper) {

        helper.getAreaOfDivisionhelper(component, event, helper);

    },

      saveContact : function(component, event, helper) {

        var fName = component.get("v.fName");

        var lName = component.get("v.lName");

        var email = component.get("v.email");

        var phn = component.get("v.phn");

        var BusinessVertical = component.get("v.selectedBusinessVertical");

        var DivisionOfVertical = component.get("v.selectedDivisionVertical");

        var AreaofDivision = component.get("v.selectedAreaOfDivision");

           console.log('fName : '+fName);

        console.log('lName : '+lName);

        console.log('email : '+email);

        console.log('phn : '+phn);

      var action = component.get("c.saveContacts");

        action.setParams({ fName : component.get("v.fName"),

                          lName : component.get("v.lName"),

                          email : component.get("v.email"),

                          phn : component.get("v.phn"),

                          BusinessVertical : component.get("v.selectedBusinessVertical"),

                          DivisionOfVertical : component.get("v.selectedDivisionVertical"),

                          AreaOfDivision : component.get("v.selectedAreaOfDivision")

                         });

        action.setCallback(this, function(response) {

            var state = response.getState();

            if (state === "SUCCESS") {

             alert("Saved Sucessfully");

          } else {

                console.log(response.getError());

            }

        });

         $A.enqueueAction(action);  

    }

})


....Helper.js....


({

    getDivisionOfVerticalhelper : function(component, event, helper) {

        var action = component.get("c.getDivisionVerticalByBusinessVertical");

        action.setParams({  BusinessVertical : component.get("v.selectedBusinessVertical") });

        action.setCallback(this, function(response) {

            var state = response.getState();

            if (state === "SUCCESS") {

                component.set('v.availableDivisionOfVertical',response.getReturnValue());

            }

   });

            $A.enqueueAction(action);

    },

      getAreaOfDivisionhelper : function(component, event, helper) {

        var action = component.get("c.getAreaOfDivisionByDivisionVertical");

          action.setParams({  DivisionVertical : component.get("v.selectedDivisionVertical") });

        action.setCallback(this, function(response) {

            var state = response.getState();

            if (state === "SUCCESS") {

                component.set('v.availableAreaOfDivision',response.getReturnValue());

            } else{

                console.log(response.getError());

            }

              });

          $A.enqueueAction(action);

    }

})




Comments

Popular posts from this blog

Write a trigger and it's Test class on Account when Account is update check all opportunity inside the account.

Populate Description field with the user first name who creates or updates the record by using userInfo standard keyword , and also does not allow user to delete the record. Write it's Test class also.