Showing results for 
Search instead for 
Did you mean: 
Kudo Kingpin
Kudo Kingpin

Gallery Default property type/format?

Hi there,

I'm working on an on call roster app. Users will see who is rostered on call this week, as well as previous and future entries in the roster.

I want to implement this as a gallery. I want to use the Default property of the gallery to set the displayed gallery item. This is so that the initial scroll position of the gallery will be at today's on call duty, and the user can scroll up or down to see adjacent entries. The problem I've encountered is, I can't figure out how to set the value of the Default property.

The Gallery control properties documentation doesn't say which which type it uses, nor does it give an example situation using this property.

In fact, I wouldn't have even known this was the correct property to use, had it not been for this forum post - . However, the method suggested in the post leaves the type and/or format of a Default property value opaque to the user.

How can I set the value of a gallery's Default property?

Accepted Solutions
Community Champion
Community Champion

Well, here is one suggestion to see if the issue is to do with data retrieval.
Create a button with OnSelect = ClearCollect(LocalRoster, 'On Call Roster')
Substitute LocalRoster for 'On Call Roster' in all the above gallery properties etc. and see what happens. You need to press the new button once to load the collection first, of course.
If this also does not work, I will come bck to it tomorrow and do some tests.

View solution in original post

Community Champion
Community Champion


Definitely can.
Each field has its Default.FieldName to display when you list in Gallery with Filter condition so that it will show up based on condition.

You can then change Date property as your filter keys to show the desired duty roster based on date or others.

I would suggest you read Filter tutorial.

Hope this helps and Happy New Year.
Kudo Kingpin
Kudo Kingpin

Hi hpkeong, thanks for answering my post, happy new year to you too. I think you have misunderstood me.

I don't want to filter my roster. I want to browse all the roster entries.

I just want ScheduleGallery to display today's roster as the starting point when the screen loads.

Please advise if a screenshot will be helpful.


Happy New Year.


You may set:

- gallery.items = Filter(TableX, Date = Today()).

So, whatever data added today will be shown. On next day, it will be empty and show only next day's data.


Is that clear for you? I am sure it is simple for you but maybe I misunderstood you.


Haev a nice day.

Kudo Kingpin
Kudo Kingpin

Yes, what you have suggested is clear, but it's not what I'm trying to build.

I want my gallery to show not only the current entry, but previous and future entries too.

The hard part is to automatically skip to the current entry when the screen loads. Note I said skip, not filter.

This is similar to another forum post I shared a link to in my initial post, have you read that? In that post, the Gallery control's Default property was used to achieve this functionality.

Can anyone who knows how to use Gallery.Default property please assist.
Community Champion
Community Champion


Sorry for my poor understanding in English.
Hope others can help.
Kudo Kingpin
Kudo Kingpin

Hi hpkeong thanks for trying! Sorry for my weird idea 😉
Advocate III
Advocate III

Hi Lifelong,


I see what you are trying to do and it is a great idea to make your interface intuitive for your users.


The type that Default is looking for in the gallery object is an item. Specifically, an item that exists in the gallery's configured collection (items property). If you place anything in default that doesn't return something from its gallery you will get an error saying it is looking for an item, even if the function returns a valid item.


So, you have a couple of choices here, and I'll talk to the one I think will help you: LookUp(). LookUp is basically the "find" for collections(tables). The syntax is: LookUp(your_table_name, expression). In your case it would be something similar to this:

LookUp(roster_on_call, Date=Today()) where roster_on_call is your table name and Date is the name of the Date column.

****This assumes two things: 1. You have a Date column in your roster_on_call table and 2. The dates are formatted similar to what is returned by Today().


You may have to play around with the datevalue() function to get powerapps to compare correctly, but this is where you can start. Hope it helps!



Hi T,


Thanks so much for replying! My roster entries have an ID column that I'm using for the lookup, and the formula for obtaining this is already working. Using the Lookup() function per your suggestion is returning a valid response to the gallery, but the gallery still isn't jumping to my ID!


I've tried 2 methods to share my ID with the gallery. Both calculate the ID in Screen1's OnVisible property, and both show all records in the gallery, but neither will make the gallery jump to my ID.


Method 1. The gallery is on Screen1, the same screen it gets calculated on. The calculation stores the ID as a context variable. I thought this might not be working because the screen OnVisible code takes a while to figure out the ID.


Method 2. The gallery is on Screen2, a different screen than the one it gets calculated on. The calculation on Screen1 stores it as a collection record to compensate. 


Any other ideas? Is it worth trying the other method to return the gallery item?




EDIT: I've now tried a third method - instead of finding the matching record, grabbing its ID and using it in the lookup, the Default property is set to the matching record directly. This doesn't work either. I'm beginning to wonder whether there is an issue with the control...


Hi all, the basic problem is that a gallery does not have a Reset property like a text input for example.  When toggled to true, the Reset property resets text back to Default in the case of a text input.


However, we can still achieve what @lifelongjourney requires bearing in mind the following:

  1. The Default property of a gallery should be a record compatible with the gallery's Items
  2. When the app is started, the gallery will show the Default item and it will be selected
  3. If Default is blank or it is not a compatible record, then the gallery will show the first record on top and no record will be selected (i.e. the Selected property returns a blank/null)
  4. Once another item of the gallery is selected (by cliicking on it) then there is no straight way to reset the gallery to the Default
  5. However, if the Default record is changed (e.g. by a button) then the gallery will scroll to show the default record and it will become the selected record

You can use this last point to achieve what you require.


Here is an example of the above at work:

  1. Create a new blank app
  2. Create a button
  3. Set the button's OnSelect property to UpdateContext({ResetVar: true}); UpdateContext({ResetVar: false})
  4. Create a gallery
  5. Place a text box in the template and set its Text property to ThisItem.SampleHeading
  6. Set the gallery's Default property to If(ResetVar, First(CustomGallerySample), Last(CustomGallerySample))
  7. Create a text box outside the gallery
  8. Set the text box's text property to Gallery1.Selected.SampleHeading
  9. Run and play with it, the button should always reset the selection to the last item

Please let me know how you get on

Helpful resources

Power Apps News & Annoucements carousel

Power Apps News & Announcements

Keep up to date with current events and community announcements in the Power Apps community.

Microsoft 365 Conference – December 6-8, 2022

Microsoft 365 Conference – December 6-8, 2022

Join us in Las Vegas to experience community, incredible learning opportunities, and connections that will help grow skills, know-how, and more.

Power Apps Community Blog Carousel

Power Apps Community Blog

Check out the latest Community Blog from the community!

Top Solution Authors
Top Kudoed Authors
Users online (4,932)