Skip to main content

Latest Post

Why My Family Ditched Windows for Ubuntu (And How You Can Too)

Let’s be honest—most of us have been using Windows since we were kids. It’s the backbone of the corporate world and feels like the default choice for every computer user. For years, I thought it was the only real option. But what if I told you there isn't just an "alternative" out there, but a genuine upgrade? When people talk about switching to Linux , it can feel overwhelming because there are so many versions. However, I want to talk specifically about Ubuntu .

LWC Custom Search in Salesforce - Full Code

Salesforce Lightning Web Components (LWC) provide a modern and efficient way to build interactive user interfaces on the Salesforce platform. In this blog post, we will walk through the process of creating a custom search functionality using LWC in Salesforce. We will implement a simple search component that allows users to search for records based on a specific field.

Prerequisites


Before we start, make sure you have the following prerequisites:

  1. Salesforce Developer Account
  2. Salesforce CLI installed on your local machine

Step 1: Create a New Lightning Web Component


First, let's create a new LWC for our custom search functionality. Open the terminal/command prompt and navigate to your project directory. Use the following command to create a new LWC:


sfdx force:lightning:component:create -n CustomSearch -d force-app/main/default/lwc


This will create a new folder named "CustomSearch" inside the "lwc" directory, containing the necessary files for the Lightning Web Component.


Step 2: Edit the HTML Markup


Open the "CustomSearch.html" file located at "force-app/main/default/lwc/CustomSearch/CustomSearch.html". Replace the default markup with the following code:


<template>

    <lightning-card title="Custom Search">

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

            <lightning-input label="Enter search keyword" onchange={handleSearchTermChange}></lightning-input>

        </div>

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

            <template if:true={searchResults}>

                <ul>

                    <template for:each={searchResults} for:item="result">

                        <li key={result.Id}>{result.Name}</li>

                    </template>

                </ul>

            </template>

            <template if:false={searchResults}>

                <p>No results found</p>

            </template>

        </div>

    </lightning-card>

</template>


In this code, we have a simple Lightning Card containing an input field for users to enter their search keyword. Below that, we display the search results in an unordered list.


Step 3: Edit the JavaScript Controller


Open the "CustomSearch.js" file located at "force-app/main/default/lwc/CustomSearch/CustomSearch.js". Replace the default code with the following JavaScript:


import { LightningElement, track, wire } from 'lwc';

import searchRecords from '@salesforce/apex/CustomSearchController.searchRecords';


export default class CustomSearch extends LightningElement {

    @track searchTerm = '';

    @track searchResults;


    handleSearchTermChange(event) {

        this.searchTerm = event.target.value;

    }


    @wire(searchRecords, { searchTerm: '$searchTerm' })

    wiredSearchResult({ error, data }) {

        if (data) {

            this.searchResults = data;

        } else if (error) {

            console.error(error);

        }

    }

}


In this JavaScript controller, we have defined a searchTerm variable to store the user's input. The handleSearchTermChange function is called whenever the input field value changes. We use @wire decorator to call the server-side Apex method searchRecords with the searchTerm as a parameter. The returned data is stored in the searchResults variable.


Step 4: Create an Apex Class


Now, let's create an Apex class to handle the server-side search logic. Create a new Apex class named "CustomSearchController" with the following code:


public with sharing class CustomSearchController {

    @AuraEnabled(cacheable=true)

    public static List<Account> searchRecords(String searchTerm) {

        String searchKey = '%' + searchTerm + '%';

        return [SELECT Id, Name FROM Account WHERE Name LIKE :searchKey LIMIT 10];

    }

}


In this Apex class, we have a method searchRecords that takes the searchTerm as an input parameter. It performs a SOQL query to search for Accounts whose Name contains the search term (case-insensitive) and returns up to 10 matching records.


Step 5: Deploy the Custom Search Component


Now that we have created the LWC component and the server-side Apex class, let's deploy them to your Salesforce org. Open the terminal/command prompt and run the following commands:


sfdx force:source:push

sfdx force:apex:execute -f force-app/main/default/classes/CustomSearchController.cls


These commands will deploy the LWC component and the Apex class to your Salesforce org.


Step 6: Add the Custom Search Component to a Lightning Page


Finally, let's add the custom search component to a Lightning Page. Follow these steps:

  1. Go to "Setup" in your Salesforce org.
  2. In the Quick Find/Search box, type "App Builder" and select "App Builder."
  3. Click "New" to create a new Lightning App Page.
  4. Choose "Record Page" and click "Next."
  5. Select "Account" as the object and click "Next."
  6. Name the page "Custom Search Page" and click "Finish."
  7. In the left-hand side components list, search for "CustomSearch" and drag it to the right-hand side where you see the "Custom Search Page" layout.
  8. Save and activate the page.

Step 7: Test the Custom Search Component


Now, navigate to an Account record detail page and you should see the "Custom Search" component on the page. Enter a search keyword in the input field, and the component will display matching Account names in real-time.


Congratulations! You have successfully implemented a custom search functionality using LWC in Salesforce.


Conclusion


In this blog post, we walked through the steps to create a Lightning Web Component for a custom search in Salesforce. We created an LWC component that allows users to search for Accounts based on their name, and we used an Apex class to handle the server-side logic and retrieve the search results. By following these steps, you can extend this functionality to other objects or fields as per your business needs.


Remember to experiment and enhance the component further, adding features like pagination, additional filtering, and error handling to make it even more user-friendly and robust. Happy coding!

Popular Posts

Uninstall all Windows 10 default apps using Powershell

Here is script to uninstall all windows 10 default modern apps. This script uninstalls xbox, xbox Game bar, Xbox App,Xbox Gaming Overlay, Get started etc from your computer. No need to run one by one commands Just copy below script, run  powershell as administrator and paste script and press enter . It will automatically uninstall all default programs.  If you do not  want to uninstall some apps than just remove " "  line from script. $packages = @( "7EE7776C.LinkedInforWindows" "C27EB4BA.DropboxOEM" "Microsoft.3DBuilder" "Microsoft.Microsoft3DViewer"

How to Save Quote PDF, Send PDF, Preview PDF in salesforce with custom functionality

Want to develop custom pdf viewer, save pdf in quote pdf related List and Send quote to customer on button click when quote is custom in salesforce . These functionality are standard from salesforce. but you can develop these functionality custom in salesforce. Here is the solution:- Custom button to save Quote PDF and send PDF  Step 1:-  First Create Two custom button. which will used for PDF preview and Save quote pdf in quotes pdf related list.                               1. PDF preview Button                              2. Save & Send Quote Button Replace "Your VF page here" to Your quote PDF cuatom page. Step 2:-  PDF preview button   pdf preview button will display the pdf's preview in standard format of salesforce. So you need to set the  following configuration (In picture). After that you have ...

A Simple Way to Understand Salesforce

Introduction: Salesforce is a powerful cloud-based customer relationship management (CRM) platform that has revolutionized the way businesses manage their sales, customer service, marketing, and more. However, understanding Salesforce can sometimes be a daunting task for newcomers. In this blog post, we will break down Salesforce into simple terms and provide you with a basic understanding of its key components and functionalities.

Salesforce Classic to LWC: Your Roadmap to a Modern Org

Are you thinking about finally making the jump from Salesforce Classic to Lightning Web Components ( LWC ) ? Honestly, that’s a smart move. While Classic served us well for years, LWC offers the kind of speed, flexibility, and modern interface that today's users actually expect. But let’s be real for a second—migrating isn't just about flipping a switch. It’s a project that needs a plan.

Salesforce Certification Preparation Tips and Guide: A Roadmap to Success

Introduction: Salesforce certifications have become highly sought after in today's competitive job market. They not only validate your expertise but also enhance your career prospects in the Salesforce ecosystem. However, preparing for these certifications can be a daunting task if you're unsure where to start. In this blog post, we will provide you with valuable tips and a comprehensive guide to help you navigate through the Salesforce certification preparation process effectively. 1. Choose the Right Certification: Salesforce offers a wide range of certifications, each designed for specific roles and expertise levels. Before diving into the preparation process, carefully consider your career goals, current skillset, and job requirements. Research different certification paths and select the one that aligns best with your objectives. Whether it's the Salesforce Administrator, Developer, or Consultant certification, make an informed choice.

Drag and drop, show and hide columns styling with SLDS Customize list view Visualforce Page and JQuery

Here is sample code for who wants drag and drop, Show and hide functionality in visualforce page using SLDS styling. In this code we are using JQuery, SLDS, Visualforce page. Customize List View  Sample Visualforce Page:-  <apex:page showHeader="false" doctype="html-5.0"  sidebar="false" lightningStylesheets="true">

Empowering Industries with Salesforce: Revolutionizing Business Solutions

Introduction: Salesforce Industries, formerly known as Salesforce Vertical Solutions, offers industry-specific solutions tailored to the unique needs and challenges of various sectors. With its deep domain expertise, robust platform, and extensive ecosystem, Salesforce Industries revolutionizes how businesses operate and engage with customers in their respective industries. In this blog post, we will explore the features, benefits, and potential of Salesforce Industries in transforming industries across the board. 1. Industry-Specific Solutions: Salesforce Industries provides industry-specific solutions that address the unique requirements and complexities of different sectors. Whether it's healthcare, financial services, manufacturing, retail, or any other industry, Salesforce Industries offers pre-built applications, data models, and workflows designed to streamline business processes, improve efficiency, and drive growth. 2. Tailored Customer Experiences: Salesforce Indus...

Exploring LWC with 10 Code Examples and Detailed Explanations

 LWC, or Lightning Web Components, is a framework provided by Salesforce for building responsive and efficient web applications on the Salesforce platform. LWC leverages modern web standards such as web components, JavaScript modules, and Shadow DOM to provide a robust development experience. Here are ten code examples with explanations to help you understand the basics of LWC: 1. Hello World Component: <!-- helloWorld --> <template>   <h1>Hello, World!</h1> </template> // helloWorld.js import { LightningElement } from 'lwc'; export default class HelloWorld extends LightningElement {}