Im having trouble sorting out a filter need on a gallery in powerapps.
I would like to display only items created by the user. To do this i do the following.
Gallery item: Filter('ListName', Author.Email=CurrentUser)
The above works fine.
Now i have a Text input where i would like users to search the items they have created.
I can do that with the following.
SortByColumns(Filter('ListName', StartsWith(Title, TextInput.Text)), "Title")
The above sorts all items.
How can i combine both?
I want the user to only see the items they have created and i want them to be able to use the text box to search there items using the title.
Assuming the users only ever see their own items, you could create a collection in either App.OnStart or screen OnVisible that filters the data source 'ListName' for the users items. Then use this collection for the Items of your gallery.
App.OnStart = ClearCollect( colUserItems, Filter('ListName', Author.Email=CurrentUser) )
Gallery.Items = colUserItems
Looks like i can use the following.
Filter('ListName', Author.Email=CurrentUser || SearchCourses.Text in Title)
I do get a delegation warning so i wonder if there is a better way to do this?
@Eelman Thank you for answering.
Im trying to have a searchbox that can search the gallery to and display only current users items. If search is empty ti shows the user a list of all there items then they can use search to to find more specific items in there own list
Hi @JimmyWork ,
Do you want to combine the two filter condition that you mentioned?
Currently, the 'in' operator could not be delegated within SP connector, please check the following article:
Please consider modify your formula as below:
SortByColumns( Filter( 'ListName', Author.Email = CurrentUser, StartsWith(Title, TextInput.Text) ), "Title" )
Note: I assume that the CurrentUser store the email address of the current login user.
SortByColumns( Filter( 'ListName', Author.Email = CurrentUser, If( IsBlank(TextSearchBox1.Text), true, StartsWith(Title, TextInput.Text) ) ), "Title" )
If the amount of your SP List records is not more than 2000, you could ignore the Delegation warning issue within your formula (using 'in' operator). If the amount of your SP List records is more than 2000, you could consider bulk-load your SP list records into your app as Collection. Then use the collection as data source in your app.
Please check and see if the alternative solution I mentioned below could help in your scenario:
Read the announcement for more information!
Congrats to the finalists of our ‘Better Together’-themed T-shirt design contest! Click for the top entries.
Features releasing from October 2019 through March 2020
Innovate, Collaborate, Grow - The top training and networking event across the globe for Microsoft Business Applications