Cascading Dropdowns in a Model-Driven App 2026

By
โ€”
Last updated:

Cascading Dropdowns in a Model-Driven App (Without Coding)

Introduction

Cascading dropdowns are a very common requirement in enterprise applications. A classic example is Country โ†’ State โ†’ City, where the available values in one field depend on the selection made in another field. In traditional development approaches, this logic is usually implemented using JavaScript or custom code. However, with Power Apps model-driven apps, Microsoft Dataverse provides powerful no-code capabilitiesโ€”such as relationships, form-level filtering, and business rulesโ€”that allow you to implement cascading dropdowns without writing a single line of code.

In this article, we will build a fully functional cascading dropdown experience in a model-driven app using four Dataverse tables:

  • Country
  • State
  • City
  • MasterData (transaction / parent table)

We will achieve the following behavior:

  1. Initially, only the Country field is visible.
  2. When a Country is selected, the State field becomes visible.
  3. When a State is selected, the City field becomes visible.
  4. The State lookup shows only states related to the selected country.
  5. The City lookup shows only cities related to the selected state.

All of this will be implemented using:

  • Dataverse one-to-many relationships
  • Lookup filtering on model-driven forms
  • Business Rules for show/hide logic

No JavaScript. No plugins. No Power Automate flows.


Prerequisites

Before starting, make sure you have:

  • Access to Power Apps with permissions to create and customize Dataverse tables
  • A model-driven app environment
  • Basic understanding of:
    • Dataverse tables
    • Columns (fields)
    • Relationships
    • Model-driven forms

High-Level Architecture

Letโ€™s first understand the data model and how the tables relate to each other.

Tables Overview

Table NamePurpose
CountryStores list of countries
StateStores states/provinces related to a country
CityStores cities related to a state
MasterDataMain table where cascading dropdowns are used
Cascading Dropdowns in a Model-Driven App

Relationship Design

We will use one-to-many (1:N) relationships:

  • Country (1) โ†’ State (N)
  • State (1) โ†’ City (N)
  • Country (1) โ†’ MasterData (N)
  • State (1) โ†’ MasterData (N)
  • City (1) โ†’ MasterData (N)

This structure allows:

  • Each State to belong to one Country
  • Each City to belong to one State
  • MasterData records to reference Country, State, and City

Step 1: Create the Country Table

  1. Go to Power Apps โ†’ Dataverse โ†’ Tables
  2. Click + New table
  3. Enter:
    • Table name: Country
    • Primary column: Country Name
  4. Save the table
Country Table

Add Sample Columns (Optional)

You may add optional columns such as:

  • Country Code
  • ISO Code

For this implementation, the primary name column is sufficient.


Step 2: Create the State Table

  1. Create a new table named State
  2. Primary column: State Name

Create Relationship: Country โ†’ State

  1. Open the State table
  2. Go to Relationships
  3. Click + Add relationship โ†’ Many-to-one
  4. Configure:
    • Related table: Country
    • Relationship name: Country (States)
  5. Save and publish
Country โ†’ State

This relationship ensures that each state belongs to one country.


Step 3: Create the City Table

  1. Create a new table named City
  2. Primary column: City Name

Create Relationship: State โ†’ City

  1. Open the City table
  2. Go to Relationships
  3. Add Many-to-one relationship
  4. Configure:
    • Related table: State
    • Relationship name: State (Cities)
  5. Save and publish

Step 4: Create the MasterData Table

The MasterData table is where users will select Country, State, and City.

  1. Create a new table named MasterData
  2. Primary column: Title

Add Lookup Columns

Add the following lookup columns:

Column NameData TypeLookup Table
CountryLookupCountry
StateLookupState
CityLookupCity

Create Relationships Automatically

When you create lookup columns, Dataverse automatically creates the required relationships:

  • Country (MasterData)
  • State (MasterData)
  • City (MasterData)

Step 5: Configure the MasterData Main Form

  1. Open MasterData table
  2. Go to Forms โ†’ Main form
  3. Add the following fields in order:
    • Title
    • Country
    • State
    • City

At this stage, all fields will be visible and unfiltered.


Step 6: Configure Lookup Filtering (Cascading Behavior)

This step ensures that State and City dropdowns show only relevant records.

Filter State Based on Country

  1. Select the State field on the form
  2. Open the Properties pane
  3. Go to Filtering section
  4. Enable Filter by related rows

Configure the relationships:

  • Relationship to current table: Country (MasterData)
  • Relationship to this lookupโ€™s table: Country (States)

This configuration means:

Only states whose Country matches the selected Country in MasterData will be shown.

Filter City Based on State

  1. Select the City field
  2. Enable Filter by related rows
  3. Configure:
  • Relationship to current table: State (MasterData)
  • Relationship to this lookupโ€™s table: State (Cities)

Now, the City dropdown depends on the selected State.

Filter City Based on State

Step 7: Create Business Rules for Show/Hide Logic

Now we will control field visibility using Business Rules.

Why Use Business Rules?

Business rules allow you to:

  • Show or hide fields
  • Set field values
  • Enforce validation

All without writing code.


Business Rule 1: Show State When Country Is Selected

Rule Logic

  • Condition: Country contains data
  • If true:
    • Show State field
  • If false:
    • Hide State field
    • Hide City field

Steps to Create

  1. Open MasterData table
  2. Go to Business rules โ†’ + New business rule
  3. Add a Condition:
    • Field: Country
    • Operator: Contains data
  4. Under True branch:
    • Add Set Visibility action
    • Field: State
    • Visibility: Show
  5. Under False branch:
    • Add Set Visibility โ†’ State โ†’ Hide
    • Add Set Visibility โ†’ City โ†’ Hide
  6. Save and activate the rule
Business Rule

Business Rule 2: Show City When State Is Selected

Rule Logic

  • Condition: State contains data
  • If true:
    • Show City field
  • If false:
    • Hide City field

Steps

  1. Create another business rule
  2. Add condition:
    • Field: State
    • Operator: Contains data
  3. True branch:
    • Set Visibility โ†’ City โ†’ Show
  4. False branch:
    • Set Visibility โ†’ City โ†’ Hide
  5. Save and activate

Step 8: Optional โ€“ Clear Dependent Fields Automatically

To avoid invalid data, you can optionally clear State and City when Country changes.

Example Logic

  • When Country changes:
    • Clear State
    • Clear City

This can be done using Set Field Value actions inside business rules.


Step 9: Test the Cascading Dropdown

  1. Open the MasterData model-driven app
  2. Create a new record

Expected Behavior

  1. Only Country is visible initially
  2. Select a Country
  3. State becomes visible
  4. State lookup shows only states of selected country
  5. Select a State
  6. City becomes visible
  7. City lookup shows only cities of selected state

Common Issues and Troubleshooting

Issue 1: State or City Shows All Records

Cause: Incorrect relationship selected in filtering

Fix:

  • Recheck:
    • Relationship to current table
    • Relationship to lookup table

Issue 2: Fields Not Hiding or Showing

Cause: Business rule scope or logic

Fix:

  • Ensure business rule is:
    • Activated
    • Applied to Entity (All Forms) or correct form

Issue 3: City Visible Before State

Cause: Missing or incorrect business rule

Fix:

  • Verify that City visibility depends only on State

Best Practices

  • Always hide dependent fields initially
  • Clear dependent lookups when parent changes
  • Use consistent naming for relationships
  • Test with multiple data scenarios
  • Keep business rules simple and focused

Conclusion

Using Dataverse relationships, lookup filtering, and business rules, you can easily build cascading dropdowns in a model-driven app without any coding. This approach is:

  • Maintainable
  • Scalable
  • Fully supported by Microsoft
  • Beginner-friendly

This Country โ†’ State โ†’ City example can be extended to many other scenarios such as:

  • Category โ†’ Subcategory โ†’ Product
  • Department โ†’ Team โ†’ Employee
  • Region โ†’ Area โ†’ Branch

With these no-code techniques, you can deliver rich, dynamic user experiences in Power Apps model-driven apps while keeping your solution clean and future-proof.


Happy building with Power Apps! ๐Ÿš€

โœจ Thanks for reading! โœจ

I hope you found this blog on the Microsoft Power Platform helpful! From Power Apps, Power Automate (Cloud & Desktop), Canvas Apps, Model-driven Apps, Power BI, Power Pages, SharePoint, Dynamics 365 (D365), Azure, and more, I cover a wide range of topics to help you harness these powerful tools. Donโ€™t miss out on future tips, tutorials, and insightsโ€”hit that subscribe button to get the latest posts right to your inbox. ๐Ÿ’Œ๐Ÿ’ฌ Iโ€™d love to hear your thoughts! Drop a comment below with your questions, ideas, or feedbackโ€”letโ€™s get the conversation started!๐Ÿ”— Letโ€™s connect and grow together!


Follow me, Ravindra Jadhav, on your favorite platforms for even more content and updates on Microsoft Power Platform and related technologies:

๐Ÿ’ผ LinkedIn โ€“ Letโ€™s network and share ideas!

๐Ÿ’ป GitHub โ€“ Explore my projects and code.

๐Ÿฆ Twitter โ€“ Stay updated with quick tips and industry news.

๐Ÿ“บ YouTube โ€“ Watch tutorials and deep dives on Power PlatformPower AppsPower Automate, and more! Letโ€™s build something amazing together with Power Platform and Azure! ๐Ÿš€ 

SEO DATA

Cascading Dropdowns in a Model-Driven App

Cascading Dropdowns in a Model-Driven App

Cascading Dropdowns in a Model-Driven App

Cascading Dropdowns in a Model-Driven App

Cascading Dropdowns in a Model-Driven App

Cascading Dropdowns in a Model-Driven App

Cascading Dropdowns in a Model-Driven App

Cascading Dropdowns in a Model-Driven App

Cascading Dropdowns in a Model-Driven App

Cascading Dropdowns in a Model-Driven App

Cascading Dropdowns in a Model-Driven App

Cascading Dropdowns in a Model-Driven App

cascading dropdown in model-driven app

Power Apps cascading dropdown

Dataverse cascading lookup

no code cascading dropdown Power Apps

model-driven app cascading dropdown

Dataverse lookup filtering

cascading lookup Dataverse

Power Apps model-driven app tutorial

Dataverse business rules

no code Power Apps solution

how to create cascading dropdown in Power Apps

Power Apps without coding

model-driven app lookup filter example

Dataverse relationships one to many

Power Apps business rules example

Cascading Dropdowns in a Model-Driven App

Leave a Comment