Hey guys, today in this post we are going to learn about How to Create lwc datatable as resizing, text wrapping and clipping of columns with sorting of columns by ascending and descending order that displays the rows and columns of data in lightning web component — LWC.
Here I am creating lwc datatable with sorting of the ‘Age’ columns by ascending and descending order that displays the rows and columns of data in lightning web component (LWC).
Files we used in this post example
lwcDatatableSortableColm.html | LWc HTML File | Template HTML file to create datatable with sorting of columns by Ascending & Descending Order in lwc |
lwcDatatableSortableColm.js | LWC JavaScript File | It’s hold a javascript on click function to sorting the ‘Age’ column by Ascending & Descending Order. |
lwcVerticalTabs.js-meta.xml | XML Meta File | It is used to where this lightning web component file you want to expose. |
lwcDatatableSortableColmApp | Lightning Application | It is used, call the LWC HTML file to preview on browser. |
Final Output
You can download file directly from github by Click Here.
Other related post that would you like to learn in Salesforce
Find the below steps:-
Create Lightning Web Component HTML
Step 1:- Create Lightning Web Component HTML ➡ lwcDatatableSortableColm.html
SFDX:Lightning Web Component ➡ New ➡ lwcDatatableSortableColm.html
lwcDatatableSortableColm.html [Lightning Web Component HTML]
<template>
<div class="slds-p-around--medium">
<h3 class="slds-text-heading_medium"><strong style="color:#270086;">Create Custom <span style="color:#ff8000">Data-Table with Sortable Column </span> in Lightning Web Component (LWC)</strong></h3>
<lightning-datatable
key-field="id"
columns={columns}
data={data}
hide-checkbox-column
default-sort-direction={defaultSortDirection}
sorted-direction={sortDirection}
sorted-by={sortedBy}
onsort={onHandleSort}>
</lightning-datatable>
<br/><br/>
<!--Start RelatedTopics Section-->
<div style="border:1px #ddd solid; padding:10px; background:#eee; margin:40px 0;">
<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>
<br/><br/>
<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>
<div style="display:block; overflow:hidden;">
<div style="width: 50%; float:left; display:inline-block">
<ul style="list-style-type: square; font-size: 16px; margin: 0 0 0 54px; padding: 0;">
<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>
<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>
<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>
<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>
<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>
</ul>
</div>
<div style="width: 50%; float:left; display:inline-block">
<ul style="list-style-type: square; font-size: 16px; margin: 0 0 0 54px; padding: 0;">
<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>
<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>
<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>
<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>
<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>
</ul>
</div>
<div style="clear:both;"></div>
<br/>
<div class="youtubeIcon">
<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>
</div>
</div>
</div>
<!--End RelatedTopics Section-->
</div>
</template>
Create Lightning Web Component Javascript
Step 2:- Create Lightning Web Component Javascript ➡ lwcDatatableSortableColm.js
SFDX:Lightning Web Component ➡ New ➡ lwcDatatableSortableColm.js
lwcDatatableSortableColm.js [LWC JavaScript File]
import { LightningElement } from 'lwc';
const data = [
{ id: 1, name: 'Alex Mike', age: 29, email: 'alexmike@w3web.net' },
{ id: 2, name: 'Tina Roy', age: 38, email: 'tinaroy@w3web.net' },
{ id: 3, name: 'Michael Jackson', age: 20, email: 'michaelJackson@w3web.net' },
{ id: 4, name: 'Madan Mohan', age: 18, email: 'madanmohan@w3web.net',},
{ id: 5, name: 'Suresh Mehta', age: 27, email: 'sureshmehta@w3web.net',},
{ id: 6, name: 'Madhusudan Roy', age: 35, email: 'madhusudanroy@w3web.net',},
{ id: 7, name: 'Vijay Kumar', age: 39, email: 'vijaykumar@w3web.net',},
{ id: 8, name: 'Dharmendra Kapoor', age: 21, email: 'dharmendrakapoor@w3web.net',},
];
const columns = [
{ label: 'Name', fieldName: 'name' },
{
label: 'Age',
fieldName: 'age',
type: 'number',
sortable: true,
cellAttributes: { alignment: 'left' },
},
{ label: 'Email', fieldName: 'email', type: 'email' },
];
export default class lwcDatatableSortableColm extends LightningElement {
data = data;
columns = columns;
defaultSortDirection = 'asc';
sortDirection = 'asc';
sortedBy;
// Used to sort the 'Age' column
sortBy(field, reverse, primer) {
const key = primer
? function(x) {
return primer(x[field]);
}
: function(x) {
return x[field];
};
return function(a, b) {
a = key(a);
b = key(b);
return reverse * ((a > b) - (b > a));
};
}
onHandleSort(event) {
const { fieldName: sortedBy, sortDirection } = event.detail;
const cloneData = [...this.data];
cloneData.sort(this.sortBy(sortedBy, sortDirection === 'asc' ? 1 : -1));
this.data = cloneData;
this.sortDirection = sortDirection;
this.sortedBy = sortedBy;
}
}
Create Lightning Web Component Meta XML
Step 3:- Create Lightning Web Component Meta XML ➡ lwcDatatableSortableColm.js-meta.xml
SFDX:Lightning Web Component ➡ New >> lwcDatatableSortableColm.js-meta.xml
lwcDatatableSortableColm.js-meta.xml [LWC Meta Data XML]
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>45.0</apiVersion>
<isExposed>true</isExposed>
<targets>
<target>lightning__AppPage</target>
<target>lightning__RecordPage</target>
<target>lightning__HomePage</target>
</targets>
</LightningComponentBundle>
Create Lightning Application
Step 4:- Create Lightning Application : LwcDatatableSortableColmApp.app
From Developer Console >> File >> New >> Lightning Application
LwcDatatableSortableColmApp.app [Component Application File]
<aura:application extends="force:slds">
<c:lwcDatatableSortableColm/>
</aura:application>
Further post that would you like to learn in Salesforce
How do I sort multiple columns in DataTable?
DataTables allows ordering by multiple columns at the same time, which can be activated in a number of different ways: User shift click on a column (added the clicked column as a secondary, tertiary etc ordering column).
What is multiple column sorting?
Allows you to choose up to three columns to sort by and returns a data set sorted by the selected column(s), adding a column called row_index that enables you to filter the output based on the sorting results.
How do you sort multiple columns independently of each other in Excel?
If you want to sort the table columns independently from each other, click on the Arrange All button in the ribbon toolbar tab Variables. After clicking, the Arrange_All function appears in the sidebar.
Related Topics | You May Also Like
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 |