Custom Multi-Select Picklist in LWC with Drag-and-Drop Feature


In Salesforce development, there are times when we need to implement custom functionality that goes beyond the standard components provided by the platform. One such requirement is a custom multi-select picklist. In this blog post, we will explore the need for a custom multi-select picklist, discuss the advantages of using Lightning Web Components (LWC), and demonstrate how to build a custom multi-select picklist with a drag-and-drop feature.

Why Use a Custom Multi-Select Picklist?

Salesforce offers a powerful standard component called “lightning-dual-listbox” for multi-select picklists. However, in certain scenarios, we may require additional customization or have specific design requirements that cannot be achieved using the standard component alone. This is where a custom multi-select picklist comes into play. It allows us to tailor the functionality and design to meet our specific needs.

Advantages of Lightning Web Components (LWC):

Before we dive into building the custom component, let’s highlight the advantages of using LWC. LWC is a modern development model introduced by Salesforce, focusing on enhanced performance, reusability, and improved developer productivity. Some key benefits of LWC include:

  1. Performance: LWC leverages a lightweight architecture and modern web standards, resulting in faster loading times and improved overall performance.
  2. Reusability: LWC promotes the modular development approach, allowing developers to create reusable components that can be easily integrated into different parts of the application.
  3. Easy Learning Curve: With LWC, developers familiar with web development technologies like HTML, CSS, and JavaScript can quickly adapt and start building Lightning components.
  4. Compatibility: LWC is compatible with other Salesforce features, such as Lightning App Builder and Lightning Experience, ensuring seamless integration and consistent user experiences.

Building a Custom Multi-Select Picklist with Drag-and-Drop Feature:
Now, let’s dive into the implementation of our custom multi-select picklist using LWC and incorporating the drag-and-drop feature.

Step 1: Component Structure and Styling:
We start by defining the structure of our custom component. We use HTML markup to create the available options list, the selected options list, and the drag-and-drop functionality. We apply CSS styling to enhance the visual appearance and provide a pleasant user experience.

Step 2: Data Binding and Event Handling:
Next, we focus on data binding and event handling. We define the data variables to store the available options and selected options. We handle events such as item selection and drag-and-drop actions.

Step 3: Drag-and-Drop Implementation:
To enable drag-and-drop functionality, we use the HTML5 Drag and Drop API. We attach event handlers to the appropriate elements, such as <strong>ondragstart</strong>, <strong>ondragover</strong>, and <strong>ondrop</strong>. These event handlers allow us to capture the drag start, drag over, and drop events, respectively.

Step 4: Moving Items between Lists:
Based on the drag-and-drop events, we update the data variables to move items between the available options and selected options lists. We dynamically update the UI to reflect the changes.

Code Repository: Custom Multi-Select Picklist Component

Demo Video


In this blog post, we explored the need for a custom multi-select picklist and discussed the advantages of using Lightning Web Components (LWC) for Salesforce development. We walked through the step-by-step process of building a custom multi-select picklist with a drag-and-drop feature using LWC. By leveraging LWC’s performance, reusability, and ease of use, we were able to create a flexible and customized solution tailored to our specific requirements. With this custom component, users can enjoy an enhanced user experience and improved productivity when dealing with multi-select picklist functionality.

Implementing a custom multi-select picklist not only expands the capabilities of Salesforce but also demonstrates the flexibility and power of Lightning Web Components in creating tailored solutions. By mastering LWC and custom component development, Salesforce developers can unlock new possibilities and deliver impactful applications to meet the unique needs of their organizations.

Remember, embracing custom components and leveraging features like drag-and-drop functionality allows developers to go beyond the standard offerings and create compelling user experiences within the Salesforce ecosystem.

By implementing the custom multi-select picklist with a drag-and-drop feature, you can enhance the user experience, increase productivity, and elevate your Salesforce applications to new heights.


About the blog

SFDCLessons is a blog where you can find various Salesforce tutorials and tips that we have written to help beginners and experienced developers alike. we also share my experience and knowledge on Salesforce best practices, troubleshooting, and optimization. Don’t forget to follow us on:


Subscribe to our email newsletter to be notified when a new post is published.


Arun Kumar

Arun Kumar is a Salesforce Certified Platform Developer I with over 7+ years of experience working on the Salesforce platform. He specializes in developing custom applications, integrations, and reports to help customers streamline their business processes. Arun is passionate about helping businesses leverage the power of Salesforce to achieve their goals.

Leave a Reply