Close Menu
SalesforceCodex
    Facebook X (Twitter) Instagram
    Trending
    • Building a Dynamic Tree Grid in Lightning Web Component
    • 10 Salesforce Chrome Extensions to Boost Your Productivity
    • How to Build a Generic Modal Window in Lightning Web Component
    • Top 10 Salesforce Flow Features of Salesforce Summer ’25
    • Unlock the Power of Vibe Coding in Salesforce
    • How to Implement Dynamic Queueable Chaining in Salesforce Apex
    • How to Implement Basic Queueable Chaining in Salesforce Apex
    • How to Suppress PMD Warnings in Salesforce Apex
    Facebook X (Twitter) Instagram
    SalesforceCodex
    Subscribe
    Sunday, June 29
    • Home
    • Architecture
    • Salesforce
      • News
      • Apex
      • Integration
      • Books Testimonial
    • Questions
    • Certification
      • How to Prepare for Salesforce Integration Architect Exam
      • Certification Coupons
    • Integration Posts
    • Downloads
    • About Us
      • Privacy Policy
    SalesforceCodex
    Home»Salesforce»Lightning Web Component»Building a Dynamic Tree Grid in Lightning Web Component

    Building a Dynamic Tree Grid in Lightning Web Component

    Dhanik Lal SahniBy Dhanik Lal SahniJune 29, 2025No Comments4 Mins Read
    Facebook Twitter Pinterest LinkedIn Tumblr Email
    Dynamic Tree Grid | Lightning Web Component | SalesforceCodex
    Share
    Facebook Twitter LinkedIn Pinterest Email

    In Salesforce applications, data often exists in hierarchical relationships, such as Accounts and Contacts, Opportunities and Products, or Custom Parent-Child records. Displaying such data in a simple table can be limiting and hard to understand. This is where the Lightning Tree Grid becomes important. It lets users view nested, expandable data structures in a single view, improving data visibility and user experience. In this post, we will learn to create a dynamic tree grid in Lightning Web Component.

    Building a static tree grid tied to one object structure is not scalable. In real-world scenarios, business requirements evolve, and data models vary across use cases and industries. A dynamic tree grid solves this by allowing administrators or developers to define

    • The parent and child objects
    • The fields to display for each

    This eliminates hardcoding and enables reusability across multiple modules, saving development time and enhancing flexibility.

    Check out the post Generic DataTable in Lightning Web Component to create a dynamic data table in LWC.

    Steps to build a dynamic tree grid

    1. Create custom metadata types
    2. Create Apex Class
    3. Create Lightning Web Component
    4. Test Lightning Web Component

    1. Create custom metadata types

    To make the dynamic tree grid, we need to pass parent and child data at runtime. These data will be fetched from different objects using SOQL. We will use a custom metadata type for storing these object details.

    We will create two custom metadata types, one for the parent objects and another for child objects. Two custom metadata types are required, as we cannot self-reference custom metadata types.

    Parent Custom Metadata Type

    Let us create a custom metadata type ParentObjectSetting__mdt and add the below fields to it.

    Field API NameTypeDescription
    ObjectName__cTextAPI name of the parent object
    FieldsName__cLong TextComma-separated field names
    IsActive__cCheckboxWhether this parent is active. So that we can enable/disable tree grids at runtime.
    WhereCondition__cLong TextOptional WHERE clause (e.g. Industry=’Tech’)

    Child Custom Metadata Type

    Let us create a custom metadata type ChildObjectSetting__mdt and add the following fields to it.

    Field API NameTypeDescription
    ObjectName__cTextAPI name of the child object
    FieldsName__cLong TextComma-separated field names
    ParentObject__cTextRelated parent object API name
    IsActive__cCheckboxWhether this child is active
    WhereCondition__cLong TextOptional WHERE clause for child records

    Add sample data to these custom metadata objects.

    ParentObjectSetting__mdt

    Object NameFields NameIs ActiveWhereCondition
    AccountName,IndustrytrueIndustry = ‘Tech’

    ChildObjectSetting__mdt

    Object NameFields NameParent ObjectRelationship NameIs Active
    ContactFirstName,LastName,EmailAccountContactstrue
    OpportunityName,StageName,AmountAccountOpportunitiestrue

    2. Create Apex Class

    Let us create Apex classes, ParentChildDataController, and ParentChildDataService, that will fetch dynamic parent-child hierarchical data based on the above-mentioned custom metadata configurations. This class is optimized for use with a Lightning Web Component (LWC) that renders the data in alightning-tree-grid.

    This Apex class dynamically constructs a SOQL relationship query using metadata from two custom metadata types:

    1. ParentObjectSetting__mdt – Defines the parent object, fields to display, and any filters.
    2. ChildObjectSetting__mdt – Defines child objects related to the parent, fields to display, the child relationship name, and optional filters.

    It returns a hierarchical List<Map<String, Object>>, where:

    • Each map represents a parent record
    • Each parent may contain a _children key with a list of its related child records. This property is required for child grid creation in the tree grid.
    • Each child is also a map of its own field-value pairs

    3. Create Lightning Web Component

    Create a Lightning web component, the dynamicTreeGrid to display hierarchical parent-child Salesforce data in a user-friendly, expandable format using <lightning-tree-grid>.

    This component is fully dynamic; it automatically renders data of any object based on configuration.

    4. Test Lightning Web Component

    Add the above-created Lightning web component in any record or home page. It will display data on page load.

    Dynamic Tree Grid in Salesforce LWC | Dynamic Tree Grid in Lightning Web Component | SalesforceCodex

    Benefits of Dynamic Tree Grid

    BenefitExplanation
    Dynamic DataData is fetched using configured metadata, not hardcoded objects/fields
    ReusableThe same component can display any hierarchy data
    Efficient SOQLUses subqueries to reduce API/database calls
    Admin ConfigurableMetadata setup allows no-code adaptability. Admin can change/add configuration at runtime.
    Intuitive UIExpandable rows for clear visualization of data levels

    References

    Lightning Tree Grid

    Similar Posts

    • How to Export Data in Excel with SheetJS in LWC
    • How to Build a Generic Modal Window in Lightning Web Component
    • Ultimate Guide to URL Accessibility in LWC
    • Dynamically Instantiate Components in LWC
    • Generic Notification Component in LWC
    • Reusable Custom Calendar LWC using FullCalendar Js Library
    • Custom Toast with custom duration In LWC
    • Dynamic Interaction Between Two LWCs
    • Sending Wrapper object to Apex from LWC
    • HeatMap Chart In LWC
    • Generate and Create Signature in LWC
    • Option Group in LWC Select
    • Generate OTP in LWC
    • Custom Salesforce Knowledge Component using LWC
    • Show Category wise Knowledge Article using LWC

    Need Similar Component

    Check out our gig for the development of Lightning Web Components, Apex, or Integration.

    apex dynamic component dynamic component in lwc dynamic lwc generic component lightning lightning component Lightning web component lwc lwc dynamic component salesforce salesforce apex tree grid
    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
    Previous Article10 Salesforce Chrome Extensions to Boost Your Productivity
    Dhanik Lal Sahni
    • Website
    • Facebook
    • X (Twitter)

    With over 18 years of experience in web-based application development, I specialize in Salesforce technology and its ecosystem. My journey has equipped me with expertise in a diverse range of technologies including .NET, .NET Core, MS Dynamics CRM, Azure, Oracle, and SQL Server. I am dedicated to staying at the forefront of technological advancements and continuously researching new developments in the Salesforce realm. My focus remains on leveraging technology to create innovative solutions that drive business success.

    Related Posts

    By Dhanik Lal Sahni9 Mins Read

    10 Salesforce Chrome Extensions to Boost Your Productivity

    June 1, 2025
    By Dhanik Lal Sahni4 Mins Read

    How to Build a Generic Modal Window in Lightning Web Component

    May 26, 2025
    By Dhanik Lal Sahni6 Mins Read

    Top 10 Salesforce Flow Features of Salesforce Summer ’25

    May 11, 2025
    Add A Comment
    Leave A Reply Cancel Reply

    Ranked #1 SALESFORCE DEVELOPER BLOG BY SALESFORCEBEN.COM
    Featured on Top Salesforce Developer Blog By ApexHours
    Recent Posts
    • Building a Dynamic Tree Grid in Lightning Web Component
    • 10 Salesforce Chrome Extensions to Boost Your Productivity
    • How to Build a Generic Modal Window in Lightning Web Component
    • Top 10 Salesforce Flow Features of Salesforce Summer ’25
    • Unlock the Power of Vibe Coding in Salesforce
    Ranked in Top Salesforce Blog by feedspot.com
    RSS Recent Stories
    • Top 20 Salesforce Data Cloud Interview Questions & Answers for Admins June 5, 2025
    • How to Connect Excel to Salesforce to Manage Your Data and Metadata February 9, 2025
    • Difference Between With Security and Without Security in Apex January 2, 2025
    • Top Reasons to Love Salesforce Trailhead: A Comprehensive Guide December 5, 2024
    • How to Utilize Apex Properties in Salesforce November 3, 2024
    Archives
    Categories
    Tags
    apex (112) apex code best practice (8) apex rest (11) apex trigger best practices (4) architecture (22) Asynchronous apex (9) AWS (5) batch apex (9) batch processing (4) code optimization (8) custom metadata types (5) design principle (9) einstein (3) flow (15) future method (4) google (6) google api (4) integration (19) integration architecture (6) lighting (8) lightning (66) lightning-combobox (5) lightning-datatable (10) lightning component (32) Lightning web component (64) lwc (53) named credential (8) news (4) optimize apex code (4) Permission set (4) Queueable (9) rest api (23) S3 Server (4) salesforce (143) salesforce apex (48) salesforce api (4) salesforce api integration (5) salesforce bulk api (3) Salesforce Interview Question (4) salesforce news (5) salesforce question (5) solid (6) tooling api (5) Visual Studio Code (3) Winter 20 (8)

    Get our newsletter

    Want the latest from our blog straight to your inbox? Chucks us your detail and get mail when new post is published.
    * indicates required

    Facebook X (Twitter) Instagram Pinterest YouTube Tumblr LinkedIn Reddit Telegram
    © 2025 SalesforceCodex.com. Designed by Vagmine Cloud Solution.

    Type above and press Enter to search. Press Esc to cancel.

    Ad Blocker Enabled!
    Ad Blocker Enabled!
    Our website is made possible by displaying online advertisements to our visitors. Please support us by disabling your Ad Blocker.