cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
daroot
Resolver I
Resolver I

Cascade Dropdown with Add new value capability

Hi All,

 

I created cascade dropdown (3 dropdown) is working well, but in dropdown is it possible to configure, if the value not in lists, users can add new value within the new form (pop-up), than the new created value will auto selected in the list.

 

Thanks for any advice

1 ACCEPTED SOLUTION

Accepted Solutions
tommyly
Responsive Resident
Responsive Resident

Let's assume you have 3 cascading dropdowns:

  dropCountry, dropState, dropCity

Let's assume you have a list (e.g. SharePoint) of city, state, countries:

ID  | City                 | State          | Country
1 | Miami | Florida | USA
2 | Houston | Texas | USA 3 | New York City | New York | USA
4 | Albany | New York | USA

dropCountry.Items =

Sort(Distinct(myList, Country), Ascending)

dropState.Items = 

Sort(  
  Distinct( 
    Filter(myList, Country=dropCountry.Selected.Result).
    State
  ),
  Ascending
)

dropCity.Items =

ShowColumns(
  Filter(myList, State=dropState.Selected.Result && 
  Country=dropCountry.Selected.Result),
"ID", "City"
)

When you create a popup, you can validate that the popup only appears when all dropBoxes have values. Once that condition is satisfied, a patch command could be applied like this:

Patch(myList, Defaults(myList)
  {
    City: textboxUserInput.Text,
    State: dropState.Selected.Result,
    Country: dropCountry.Selected.Result
  }
)

If you are using temporary collections, then you would need to execute a refresh of sorts. If you are working directly with the actual datasource, it is not necessary.

 

I know your project is probably different, but hopefully this gives you some ideas.

View solution in original post

3 REPLIES 3
Anonymous
Not applicable

Hi @daroot,

This should be possible. You would have to ensure though that the option that you're adding uses the same ID/Options before it in order to preserve the cascade.

 

You could Patch or SubmitForm(), depending on how your app is set up and store the ID or Title of the new item in a variable which you can then input into the dropdown you're choosing from. On the dropdown you're adding the new value to, you could set up some rules to use the specific ID depending on what the user chooses.

 

 

tommyly
Responsive Resident
Responsive Resident

Let's assume you have 3 cascading dropdowns:

  dropCountry, dropState, dropCity

Let's assume you have a list (e.g. SharePoint) of city, state, countries:

ID  | City                 | State          | Country
1 | Miami | Florida | USA
2 | Houston | Texas | USA 3 | New York City | New York | USA
4 | Albany | New York | USA

dropCountry.Items =

Sort(Distinct(myList, Country), Ascending)

dropState.Items = 

Sort(  
  Distinct( 
    Filter(myList, Country=dropCountry.Selected.Result).
    State
  ),
  Ascending
)

dropCity.Items =

ShowColumns(
  Filter(myList, State=dropState.Selected.Result && 
  Country=dropCountry.Selected.Result),
"ID", "City"
)

When you create a popup, you can validate that the popup only appears when all dropBoxes have values. Once that condition is satisfied, a patch command could be applied like this:

Patch(myList, Defaults(myList)
  {
    City: textboxUserInput.Text,
    State: dropState.Selected.Result,
    Country: dropCountry.Selected.Result
  }
)

If you are using temporary collections, then you would need to execute a refresh of sorts. If you are working directly with the actual datasource, it is not necessary.

 

I know your project is probably different, but hopefully this gives you some ideas.

Thanks for solutions, really appreciate 

Helpful resources

Announcements
PA Virtual Workshop Carousel 768x460.png

Register for a Free Workshop

This training provides practical hands-on experience in creating Power Apps solutions in a full-day of instructor-led App creation workshop.

Microsoft Build 768x460.png

Microsoft Build is May 24-26. Have you registered yet?

Come together to explore latest innovations in code and application development—and gain insights from experts from around the world.

May UG Leader Call Carousel 768x460.png

What difference can a User Group make for you?

At the monthly call, connect with other leaders and find out how community makes your experience even better.

Top Solution Authors
Top Kudoed Authors
Users online (1,237)