Deleting multiple records dynamically with checkbox on delete button in lightning web component salesforce — LWC | how to delete selected records in lwc

5,519 views


Hey guys, today in this post we are going to learn about Deleting multiple records dynamically functionality with checkbox on delete button in lightning web component Salesforce — LWC.

Files we used in this post example

lwdDeleteMultipleRecord.html Lightning Web Component HTML Template HTML file for used to write HTML element for user interface.
lwdDeleteMultipleRecord.js Lightning Web Component JavaScript It is holding onclick functionality for delete the selected record using checkbox
lwdDeleteMultipleRecord.js-meta.xml XML Meta File It is used for where this lightning web component you want to exposed.
lwcAppExampleApex.cls Apex Controller It is used for Fetching Contact records through @wire Decorators and delete the record from database.

Live Demo

deleting multiple records with checkbox in lwc -- w3web.net

 

You can download file directly from github by Click Here.

Note:: – You will get an email, so put correct email and mobile number and BEGIN YOUR JOURNEY from Today!
   

 
 

Other related post that would you like to learn in Salesforce

Step 1:- Create Apex Controller : lwcAppExampleApex.cls

SFDX:Create Apex Class >> New >> lwcAppExampleApex.cls

lwcAppExampleApex.cls [Apex Class]

  1.  public WITH sharing class lwcAppExampleApex {   
  2.  
  3.  
  4.    //DELETE multiple contact record IN LWC
  5.     @AuraEnabled(cacheable=TRUE)
  6.     public static List<Contact> fetchContactRecord(){
  7.         List<Contact> conList = [SELECT Id, FirstName, LastName, Email, Phone FROM Contact ORDER BY createdDate DESC LIMIT 10 ];
  8.         RETURN conList;
  9.     }
  10.  
  11.     @AuraEnabled
  12.     public static List<Contact> deleteMultipleContactRecord(List<String> conObj){
  13.         List<Contact> conObjItem = NEW   List<Contact>();
  14.       List<Contact> conObjList = [SELECT Id, Name  FROM Contact WHERE Id IN:conObj];
  15.       FOR(Contact con:conObjList){
  16.         conObjItem.add(con);
  17.       }
  18.       IF(conObjItem.size()>0){
  19.           try{
  20.             DELETE conObjItem;           
  21.           }
  22.           catch (Exception EXP) {
  23.             throw NEW AuraHandledException(EXP.getMessage());
  24.         }
  25.       }
  26.       RETURN fetchContactRecord();
  27.     }
  28.  
  29. }

Step 2:- Create Lightning Web Component : lwdDeleteMultipleRecord.html

Note:: – You will get an email, so put correct email and mobile number and BEGIN YOUR JOURNEY from Today!
   

SFDX:Lightning Web Component >> New >> lwdDeleteMultipleRecord.html

lwdDeleteMultipleRecord.html [Lightning Web Component HTML]

  1.   <template>
  2.     <lightning-card title="Deleting Multiple Contact Records Using Checkbox in LWC" icon-name="custom:custom14">
  3.  
  4.         <lightning-datatable  data={wireContact.data}  columns={columns} key-field="Id"  onrowselection={getSelectedIdAction}  > </lightning-datatable>
  5.  
  6.         <div slot="footer"> 
  7.             <lightning-button title="Delete" label="Delete Selected Row" size="small" variant="brand" icon-name="utility:delete" icon-position="right" onclick={deleteContactRowAction}></lightning-button>
  8.         </div>
  9.  
  10.   <br/><br/>
  11.    <!--Start RelatedTopics Section-->
  12. <div style="border:1px #ddd solid; padding:10px; background:#eee; margin:40px 0;">
  13.  
  14.             <p data-aura-rendered-by="435:0"><img src="https://www.w3web.net/wp-content/uploads/2021/05/thumbsUpLike.png" width="25" height="25" style="vertical-align:top; margin-right:10px;" data-aura-rendered-by="436:0"><strong data-aura-rendered-by="437:0"><span style="font-size:16px; font-style:italic; display:inline-block; margin-right:5px;">Don't forget to check out:-</span><a href="https://www.w3web.net/" target="_blank" rel="noopener noreferrer" style="text-decoration:none;" data-aura-rendered-by="440:0">An easy way to learn step-by-step online free Salesforce tutorial, To know more Click  <span style="color:#ff8000; font-size:18px;" data-aura-rendered-by="442:0">Here..</span></a></strong></p>
  15.  
  16.             <br/><br/>
  17.             <p data-aura-rendered-by="435:0"><img src="https://www.w3web.net/wp-content/uploads/2021/07/tickMarkIcon.png" width="25" height="25" style="vertical-align:top; margin-right:10px;" data-aura-rendered-by="436:0"><strong data-aura-rendered-by="437:0"><span style="font-size:17px; font-style:italic; display:inline-block; margin-right:5px; color:rgb(255 128 0);">You May Also Like →</span> </strong></p>
  18.             <div style="display:block; overflow:hidden;"> 
  19.                 <div style="width: 50%; float:left; display:inline-block">
  20.                     <ul style="list-style-type: square; font-size: 16px; margin: 0 0 0 54px; padding: 0;"> 
  21.                         <li><a href="https://www.w3web.net/lwc-get-set-lightning-checkbox-value/" target="_blank" rel="noopener noreferrer">How to get selected checkbox value in lwc</a></li>
  22.                         <li><a href="https://www.w3web.net/display-account-related-contacts-in-lwc/" target="_blank" rel="noopener noreferrer">how to display account related contacts based on AccountId in lwc</a></li>
  23.                         <li><a href="https://www.w3web.net/create-lightning-datatable-row-actions-in-lwc/" target="_blank" rel="noopener noreferrer">how to create lightning datatable row actions in lwc</a></li>
  24.                         <li><a href="https://www.w3web.net/if-and-else-condition-in-lwc/" target="_blank" rel="noopener noreferrer">how to use if and else condition in lwc</a></li>
  25.                         <li><a href="https://www.w3web.net/get-selected-radio-button-value-and-checked-default-in-lwc/" target="_blank" rel="noopener noreferrer">how to display selected radio button value in lwc</a></li>
  26.                     </ul>
  27.             </div>
  28.  
  29.             <div style="width: 50%; float:left; display:inline-block">
  30.                     <ul style="list-style-type: square; font-size: 16px; margin: 0 0 0 54px; padding: 0;"> 
  31.                         <li><a href="https://www.w3web.net/display-account-related-contacts-lwc/" target="_blank" rel="noopener noreferrer">display account related contacts based on account name in lwc</a></li>
  32.                         <li><a href="https://www.w3web.net/create-lightning-datatable-row-actions-in-lwc/" target="_blank" rel="noopener noreferrer">how to insert a record of account Using apex class in LWC</a></li>
  33.                         <li><a href="https://www.w3web.net/fetch-picklist-values-dynamic-in-lwc/" target="_blank" rel="noopener noreferrer">how to get picklist values dynamically in lwc</a></li>
  34.                         <li><a href="https://www.w3web.net/edit-save-and-remove-rows-dynamically-in-lightning-component/" target="_blank" rel="noopener noreferrer">how to edit/save row dynamically in lightning component</a></li>
  35.                         <li><a href="https://www.w3web.net/update-parent-object-from-child/" target="_blank" rel="noopener noreferrer">update parent field from child using apex trigger</a></li>
  36.                     </ul>
  37.                 </div>
  38.                <div style="clear:both;"></div> 
  39.                <br/>
  40.                 <div class="youtubeIcon">
  41.                     <a href="https://www.youtube.com/channel/UCW62gTen2zniILj9xE6LmOg" target="_blank" rel="noopener noreferrer"><img src="https://www.w3web.net/wp-content/uploads/2021/11/youtubeIcon.png" width="25" height="25" style="vertical-align:top; margin-right:10px;"/> <strong>TechW3web:-</strong> To know more, Use this <span style="color: #ff8000; font-weight: bold;">Link</span> </a>
  42.                 </div>
  43.     </div>
  44.  
  45. </div>
  46.  
  47.   <!--End RelatedTopics Section-->
  48.  
  49.     </lightning-card>
  50.  
  51. </template>

Step 3:- Create Lightning Web Component : lwdDeleteMultipleRecord.js

SFDX:Lightning Web Component >> New >> lwdDeleteMultipleRecord.js

lwdDeleteMultipleRecord.js [LWC JavaScript File]

  1.   import { LightningElement, wire,api, track } from 'lwc';
  2. import fetchContactRecord from '@salesforce/apex/lwcAppExampleApex.fetchContactRecord';
  3. import deleteMultipleContactRecord from '@salesforce/apex/lwcAppExampleApex.deleteMultipleContactRecord';
  4. import { refreshApex } from '@salesforce/apex';
  5. import {ShowToastEvent} from 'lightning/platformShowToastEvent';
  6.  
  7.  
  8. export default class LwdDeleteMultipleRecord extends LightningElement {
  9.     @api  columns =[
  10.         { label: 'First Name', fieldName: 'FirstName', type:'text'},
  11.         { label: 'Last Name', fieldName: 'LastName',type:'text' },
  12.         { label: 'Email', fieldName: 'Email', type:'Email'}       
  13.     ];
  14.  
  15.  
  16.     @wire (fetchContactRecord) wireContact;
  17.  
  18.     @api selectedContactIdList=[];
  19.     @track errorMsg;
  20.  
  21.  
  22.     getSelectedIdAction(event){
  23.         const selectedContactRows = event.detail.selectedRows;
  24.         window.console.log('selectedContactRows# ' + JSON.stringify(selectedContactRows));
  25.         this.selectedContactRows=[];
  26.  
  27.         for (let i = 0; i<selectedContactRows.length; i++){
  28.             this.selectedContactIdList.push(selectedContactRows[i].Id);
  29.         }
  30.  
  31.        // window.console.log('selectedContactRows1 ' + this.selectedContactRows + selectedContactRows.length );
  32.     }
  33.  
  34.  
  35.     deleteContactRowAction(){
  36.         deleteMultipleContactRecord({conObj:this.selectedContactIdList})
  37.         .then(()=>{
  38.             this.template.querySelector('lightning-datatable').selectedContactRows=[];
  39.  
  40.             const toastEvent = new ShowToastEvent({
  41.                 title:'Success!',
  42.                 message:'Record deleted successfully',
  43.                 variant:'success'
  44.               });
  45.               this.dispatchEvent(toastEvent);
  46.  
  47.             return refreshApex(this.wireContact);
  48.         })
  49.         .catch(error =>{
  50.             this.errorMsg =error;
  51.             window.console.log('unable to delete the record due to ' + JSON.stringify(this.errorMsg));
  52.         });
  53.     }
  54.  
  55. }

Step 4:- Create Lightning Web Component : lwdDeleteMultipleRecord.js-meta.xml

SFDX:Lightning Web Component >> New >> lwdDeleteMultipleRecord.js-meta.xml

lwdDeleteMultipleRecord.js-meta.xml [LWC Meta Data XML]

  1.   <?xml version="1.0" encoding="UTF-8"?>
  2. <LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
  3.     <apiVersion>45.0</apiVersion>
  4.     <isExposed>true</isExposed>
  5.     <targets>
  6.         <target>lightning__AppPage</target>
  7.         <target>lightning__RecordPage</target>
  8.         <target>lightning__HomePage</target>
  9.       </targets>
  10. </LightningComponentBundle>

deleting multiple records with checkbox in lwc -- w3web.net

Further post that would you like to learn in Salesforce

 

 

FAQ (Frequently Asked Questions)

How do I delete records in LWC?

To delete records in LWC, we first need to import fetchOpportunities method from Apex Controller using @salesforce/apex/ module in JS Controller. Then, include deleteRecord method from lightning/uiRecordApi module.

How many records can be deleted at once using the mass delete tool?

You can delete up to 250 items at one time. When you delete a record, any associated records that display on that record's related lists are also deleted.

How do you refresh apex in LWC?

To refresh stale Apex data, invoke the Apex method and then call getRecordNotifyChange(recordIds) to update the Lightning Data Service (LDS) cache. Lightning Data Service doesn't manage data provisioned by imperative Apex calls.

Related Topics | You May Also Like

 
Note:: – You will get an email, so put correct email and mobile number and BEGIN YOUR JOURNEY from Today!
 
 
  

Our Free Courses →

👉 Get Free Course →

📌 Salesforce Administrators

📌 Salesforce Lightning Flow Builder

📌 Salesforce Record Trigger Flow Builder

👉 Get Free Course →

📌 Aura Lightning Framework

📌 Lightning Web Component (LWC)

📌 Rest APIs Integration



Hi, This is Vijay Kumar behind the admin and founder of w3web.net. I am a senior software developer and working in MNC company from more than 8 years. I am great fan of technology, configuration, customization & development. Apart of this, I love to write about Blogging in spare time, Working on Mobile & Web application development, Salesforce lightning, Salesforce LWC and Salesforce Integration development in full time. [Read full bio] | | The Sitemap where you can find all published post on w3web.net

Leave a Comment