Wednesday, December 14, 2022

LIGHTNING AND LWC SCENARIO BASED QUESTIONS

LIGHTNING AND LWC SCENARIO BASED QUESTIONS

1. When we should use aura: handler in Salesforce lightning component? Can you write Syntex?Ans: In lightning component <aura:handler… > is used for handle standard and custom events we can create our custom lightning event and also use standard events,standard lightning event is automatically fired when related event is fire <aura:handler name=”init” value=”{!this}” action=”{!c.doInit}”/>
2. Can we access one javascript controller method on another controller method in salesforce lightning component?Ans: No, we can’t able to access
3. Can we access one javascript helper method on another helper method in lightning Component?Ans: Yes, We can able to access it.

4. How to add a lightning button in Salesforce Lightning?Ans: Use the lighting button tag to add the button in a component. Example: <lightning:button variant=”base” label=”Base” title=”Base action” onclick=”{!c.handleClick}”/>

5. What is LDS IN salesforce lightning?Ans: Use Lightning Data Service to load, create, edit, or delete a record in your component without requiring Apex code. Lightning Data Service handles sharing rules and field-level security for you. In addition to simplifying access to Salesforce data, Lightning Data Service improves performance and user interface consistency.         *    No need to write any Apex class         *    No need to write SOQL         *    Field-level security and record sharing is inbuilt         *    CRUD operation supported         *    A shared cache is used by all standard and custom components         *    Auto notification to all components         *    Supports offline in Salesforce 1

6. How to display an alert message in the lightning component can you write sample code?

<aura:component>
    <lightning:button label="Submit" variant="brand" onclick="{!c.handleClick}"/>
</aura:component>({
    handleClick : function(component, event, helper) {
    alert('ALert message');
}})     

7. How to set the value to attribute, can you write a simple example?

<aura:component >
<aura:attribute name="booleanvar" type="boolean" default="false"/>
<aura:handler name="init" value="{!this}" action="{!c.doInit}"/>
value is:{!v.booleanvar}
</aura:component>
({
	doInit:function(component,event,helper){
	component.set("v.booleanvar",true)
	}
})

8. How to display the data in the lightning component? can you write the code?

Public class contactcontroller {
    @AuraEnabled
    Public static list<contact> condata(){
        list<contact> col=[select id,LastName,Email,Phone from contact];
        return col;
    }
}
<aura:component controller="contactcontroller">
<aura:attribute name="conlist" type="list"/>
<aura:handler name="init" value="{!this}" action="{!c.doInit}"/>
    <table class="slds-table slds-table_cell-buffer slds-table_bordered">
        <tr>
            <td>LastName</td>
            <td>Email</td>
            <td>Phone</td>
        </tr>
        <aura:iteration items="{!v.conlist}" var="con">
        <tr>
            <td>{!con.LastName}</td>
            <td>{!con.Email}</td>
            <td >{!con.Phone}</td>
        </tr>
        </aura:iteration>
    </table>
</aura:component>
({
    doInit :function(component, event, helper){
        var action=component.get("c.condata");
        action.setCallback(this,function(response){
        var responseval=response.getReturnValue();
        var state=response.getState();
        console.log('state is'+state);
    if(state==='SUCCESS'){
        component.set("v.conlist",responseval);
    }else{
        console.log('unable to process the data');
    }
});
$A.enqueueAction(action);
}})

Order of execution in lightningstep 1:    we can call the controller method in javascript    var action=component.get(“c.displayContacts”);step 2:    we can pass the parameters    action.setParams({    });step 3:    $A.enqueueAction(action) sends the request the server. More precisely, it adds the call to     the queue of asynchronous server calls.    $A.enqueueAction(action);step 4:    action.setCallback() sets a callback action that is invoked after the server-side action returns.

9. How to display the contact records based on AccountId can you write code lightning?

Public class accconbaes{
@AuraEnabled
    public static List<Account> displayAccounts(){
        List<Account> acclist=[select Id,Name,Site from Account LIMIT 10];
		return acclist;
    }
@AuraEnabled
    public static List<Contact> displayContacts(String searchkey){
        System.debug('Value of the AccountId'+searchkey);
        List<Contact> conlist=[select Id,AccountId,LastName,Email from Contact where
        AccountId=:searchkey];
        return conlist;
	}
}
 <aura:component controller="accconbaes">
<aura:attribute name="acclist" type="list"/>
<aura:attribute name="conlist" type="list"/>
<aura:attribute name="isDisplay" type="boolean" default="false"/>
<aura:handler name="init" value="{!this}" action="{!c.doInit}"/>
	<table class="slds-table slds-table_cell-buffer slds-table_bordered">
		<tr>
			<td>Action</td>
			<td>Id</td>
			<td>Name</td>
		</tr>
		<aura:iteration items="{!v.acclist}" var="acc">
			<tr>
				<td> <lightning:input type="radio" name="radioButon" value="{!acc.Id}" onchange="{!c.showData}"/> </td>
				<td>{!acc.Id}</td>
				<td>{!acc.Name}</td>
			</tr>
		</aura:iteration>
	</table>
	<aura:if isTrue="{!v.isDisplay}">
	<table class="slds-table slds-table_cell-buffer slds-table_bordered">
		<tr>
			<td>Id</td>
			<td>LastName</td>
		</tr>
		<aura:iteration items="{!v.conlist}" var="con">
			<tr>
				<td>{!con.Id}</td>
				<td>{!con.LastName}</td>
			</tr>
		</aura:iteration>
	</table>
	</aura:if>
</aura:component>
 ({
	doInit : function(component, event, helper) {
		var action=component.get("c.displayAccounts");
		action.setCallback(this,function(response){
		var state=response.getState();
		var responseval=response.getReturnValue();
		if(state==='SUCCESS'){
		component.set("v.acclist",responseval);
		}
		else{
			alert('unable to process the request');
			}
		});
		$A.enqueueAction(action);
	},
	
	showData:function(component,event,helper){
		var currentAccountId=event.getSource().get("v.value");
		component.set("v.isDisplay",true);
		var action=component.get("c.displayContacts");
		action.setParams({
			searchkey:currentAccountId
		});
	action.setCallback(this,function(response){
		var state=response.getState();
		var responseval=response.getReturnValue();
		if(state==='SUCCESS'){
			component.set("v.conlist",responseval);
		}else{
			alert('unable to process the request');
			}
		});
		$A.enqueueAction(action);
		}
	})
<aura:application extends="force:slds" >
    <c:acccon />
</aura:application>

11.Dynamic search in salesforce lightning component,can you write example?

public class accconbaes {
@AuraEnabled
    public static List<Account> displayAccounts(String searchkey){
        String searchword='%'+searchkey+'%';
        System.debug('userinput'+searchword);
        List<Account> returnlist=new List<Account>();
        for(Account acc:[select Id,Name,Site from Account where Name like:searchword]){
            returnlist.add(acc);
        }
    return returnlist;
    }
}
<aura:component controller="accconbaes">
<aura:attribute name="accName" type="String"/>
<aura:attribute name="acclist" type="list"/>
<aura:attribute name="isDisplay" type="boolean" default="false"/>
<lightning:input type="text" label="AccountName" value="{!v.accName}" onchange="{!c.handleSearch}" style="width:20%;"/>
Records size:{!v.acclist.length}
<aura:if isTrue="{!v.isDisplay}">
<aura:if isTrue="{!v.acclist.length!=0}">
<table class="slds-table slds-table_cell-buffer slds-table_bordered">
	<tr>
		<td>Name</td>
	</tr>
	<aura:iteration items="{!v.acclist}" var="acc">
	<tr>
		<td>{!acc.Name}</td>
	</tr>
	</aura:iteration>
</table>
</aura:if>
</aura:if>
</aura:component>
({
	handleSearch : function(component, event, helper) {
	component.set("v.isDisplay",true);
	var action=component.get("c.displayAccounts");
	action.setParams({
	searchkey:component.get("v.accName")
	});
	action.setCallback(this,function(response){
	var state=response.getState();
	var responval=response.getReturnValue();
	if(state==='SUCCESS'){
		component.set("v.acclist",responval);
	}else{
		alert('Error in processing the data');
		}
	});
	$A.enqueueAction(action);
	}
})
<aura:application extends="force:slds" >
<c:acccon/>
</aura:application>

12.How to delete the records with a button in lightning,can you write code?

public class AccountDelController{
@AuraEnabled
	public static List<Account> displayAccounts(){
	List<Account> acclist=[select Id,Name from Account];
	return acclist;
	}
@AuraEnabled
	public static List<Account> deleteAccRecord(String accId){
	System.debug('AccountId'+accId);
	Account acc=[select Id,Name from Account where Id=:accId];
	delete acc;
	return displayAccounts();
	}
}
<aura:component controller="AccountDelController">
<aura:attribute name="acclist" type="list"/>
<aura:handler name="init" value="{!this}" action="{!c.doInit}"/>
<table class="slds-table slds-table_cell-buffer slds-table_bordered">
	<tr>
		<td><b>Id</b></td>
		<td><b>Name</b></td>
		<td><b>Action</b></td>
	</tr>
	<aura:iteration items="{!v.acclist}" var="acc">
	<tr>
		<td>{!acc.Id}</td>
		<td>{!acc.Name}</td>
		<td><lightning:button label="Delete" value="{!acc.Id}" onclick="{!c.handleDelete}"/>td>
	</tr>
	</aura:iteration>
</table>
</aura:component>
({
	doInit : function(component, event, helper) {
		var action=component.get("c.displayAccounts");
		action.setCallback(this,function(response){
		var state=response.getState();
		var responsval=response.getReturnValue();
		if(state==='SUCCESS')
		{
		component.set("v.acclist",responsval);
		}
		else{
			alert('unable to process the data');
		}
	});
	$A.enqueueAction(action);
},

	handleDelete:function(component,event,helper){
		var currentRecordId=event.getSource().get("v.value");
		//alert(currentRecordId);
		var action=component.get("c.deleteAccRecord");
		action.setParams({
			accId:currentRecordId
		});
		action.setCallback(this,function(response){
		component.set("v.acclist",response.getReturnValue());
		});
	$A.enqueueAction(action);
	}
})
<aura:application extends="force:slds">
	<c:AccountDeleteComponent/>
</aura:application>

13. Events in ligtning can you write component event example?Ans: Child to parent (component composition) step 1:we need to create event demoEvent ========== <aura:event type=”COMPONENT”> <aura:attribute name=”Info” type=”String”/> </aura:event>
childComponent ============== <aura:component> //This is the way how we will regitering the event in component //You can give any name while registering the event but the type should be name of the Event <aura:registerEvent name=”sampleDemo” type=”c:demoEvent”/> <lightning:button label=”Submit” onclick=”{!c.handleClick}”/> </aura:component> ({ handleClick:function(component,event,helper) { //getting the event properties var comEvt=component.getEvent(“sampleDemo”); //setting the value to the attribute comEvt.setParams({ “Info”:”Welcome to events” //Info is the attribute name //welcome to events in the value to the attribute }); //fire is used to fire the event. //If you don’t fire the event then it won’t work comEvt.fire(); } })

Parent component: ================= <aura:component> <c:childComponent/> <aura:handler event=”sampleDemo” type=”c:demoEvent” action=”{!c.handleEvent}”/> </aura:component>
({ handleEvent:function(component,event,helper) { //getParam is used to get the value from child component(event attribute) var val=event.getParam(“Info”); alert(val); } })
<aura:application> <c:parentComponent/> </aura:application> 14. Application Event in salesforce lightning ,can you write syntex?Ans: var appEvent = $A.get(“e.c:aeEvent”);15.What is @AuraEnabled(cacheable=true)Ans:If you want to access the data then we should include this annotation to an apex class method.

16. What is wire?Ans: If you are dealing with apex class methods then we should use wire property.

17.How many files will generated when you create a LWC component?Ans:        1.    html    2.    javascript files    3.    meta data file(.xml)

18. what are the decoraters in lwc ?Ans:        @Api     @Track     @Wire

19.How to call the apex class in lwc?Ans: Import fetchAccounts from ‘@salesforce/apex/AccountDeleteController.fetchAccounts’;

20. How to call the apexclass method in javascript file?Ans:    @Wire     Imperative method         .then(result=>{         this.records=result;         this.error=undefined;     })         .catch(error=>{         this.error=error;         this.records=undefined;     });
21.How to refresh the page in Lwc?Ans: import { refreshApex } from ‘@salesforce/apex’;

22. What is aura method in lightning?Ans: This enables you to directly call a method in a component’s client side controller instead of firing and handling a component event. Using aura method simplifies the code needed for a parent component to call a method on a child component that it contains.
23.How to call a method in salesforce lightning auramethod?

<aura:component >
    <aura:method name="sampleMethod" action="{!c.fireMethod}">
        <aura:attribute name="firstName" type="String" default="Naveen"/>
    </aura:method>
</aura:component>
({
    fireMethod : function(component, event, helper) {
    var params=event.getParam("arguments");
    if(params){
        var param1=params.firstName;
        alert('Yes I am in child component'+param1);
        }
    }
})
<aura:component>
    <c:ChildComponent77 aura:id="childComp"/>
    <lightning:button label="submit" onclick="{!c.handleClick}"/>
</aura:component>
({
    handleClick : function(component, event, helper) {
        var childcmp=component.find("childComp");
        childcmp.sampleMethod();
    }
})

24.How to display success, warning, error, info message lightning page? Can you write sample code?

<aura:component implements="force:appHostable,flexipage:availableForAllPageTypes">
<div>
    <lightning:button label="Information" variant="brand" onclick="{!c.showInfo}"/>
    <lightning:button label="Error" variant="destructive" onclick="{!c.showError}"/>
    <lightning:button label="Warning" variant="neutral" onclick="{!c.showWarning}"/>
    <lightning:button label="Success"  variant="success" onclick="{!c.showSuccess}"/>
</div>
</aura:component>
({
    showInfo : function(component, event, helper) {
        var toastEvent = $A.get("e.force:showToast");
        toastEvent.setParams({
            title : 'Info',
            message: 'This is an information message.',
            duration:' 5000',
            key: 'info_alt',
            type: 'info',
            mode: 'dismissible'
            });
    toastEvent.fire();
    },
    showSuccess : function(component, event, helper) {
        var toastEvent = $A.get("e.force:showToast");
        toastEvent.setParams({
            title : 'Success',
            message: 'This is a success message',
            duration:' 5000',
            key: 'info_alt',
            type: 'success',
            mode: 'pester'
            });
    toastEvent.fire();
    },
    showError : function(component, event, helper) {
        var toastEvent = $A.get("e.force:showToast");
        toastEvent.setParams({
            title : 'Error',
            message:'This is an error message',
            duration:' 5000',
            key: 'info_alt',
            type: 'error',
            mode: 'pester'
            });
    toastEvent.fire();
    },
    showWarning : function(component, event, helper) {
        var toastEvent = $A.get("e.force:showToast");
        toastEvent.setParams({
            title : 'Warning',
            message: 'This is a warning message.',
            duration:' 5000',
            key: 'info_alt',
            type: 'warning',
            mode: 'sticky'
    });
    toastEvent.fire();
    }
})

No comments:

Post a Comment