Delegation is a fundamental concept in PowerApps that allows the app to delegate certain operations to the data source instead of processing them locally. By doing so, the app can efficiently process large data sets and avoid performance issues.
However, not all operations can be delegated, and there are limitations to the types of operations that can be delegated. This can be especially challenging when working with dropdown and gallery controls in PowerApps. In this blog post, we will explore how to manage delegation in dropdown and gallery controls in PowerApps.
Dropdown control
The dropdown control in PowerApps is commonly used to display a list of items from a data source. By default, the dropdown control will delegate the Select and Filter functions to the data source. However, there are limitations to the types of operations that can be delegated.
For example, if you have a large data set with more than 2,000 items, the dropdown control will not be able to delegate the Select and Filter functions, and you will see an error message similar to the following:
The requested operation is not supported for this data source.
To work around this issue, you can limit the number of items returned by the data source by using the Filter
function to filter the data set based on a search term entered by the user.
Here's an example of how to do this:
- Add a dropdown control to your PowerApp.
- Set the
Items
property of the dropdown control to a data source that contains a large number of items (e.g. more than 2,000).
- Add a text input control to your PowerApp.
- Set the
OnChange
property of the text input control to the following formula:
Set(varSearchTerm, TextInput1.Text);
This will set a variable varSearchTerm
to the value entered by the user in the text input control.
- Set the
Items
property of the dropdown control to the following formula:
Filter(<data source>, <field> in varSearchTerm)
Replace <data source>
with the name of your data source and <field>
with the name of the field you want to filter by.
This will limit the number of items returned by the data source to only those that match the search term entered by the user.
Gallery control
The gallery control in PowerApps is commonly used to display a list of items from a data source. By default, the gallery control will delegate the Select and Filter functions to the data source. However, there are limitations to the types of operations that can be delegated.
For example, if you have a large data set with more than 2,000 items, the gallery control will not be able to delegate the Select and Filter functions, and you will see an error message similar to the following:
The requested operation is not supported for this data source.
To work around this issue, you can use the LoadMoreData
function to load additional items from the data source as the user scrolls through the gallery control.
Here's an example of how to do this:
- Add a gallery control to your PowerApp.
- Set the
Items
property of the gallery control to a data source that contains a large number of items (e.g. more than 2,000).
- Set the
TemplateFill
property of the gallery control to a template that displays the fields you want to show for each item in the data source.
- Set the
OnSelect
property of the gallery control to the following formula:
Navigate(<next screen>, {SelectedItem: Gallery1.Selected})
Replace <next screen>
with the name of the screen you want to navigate to when the user selects an item in the gallery control.