cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Dpalmer
Helper III
Helper III

Gallery Default Selected Item

Hi,

I've seen a few posts on this but I can't seem to get this to work, seems like it should be simple.

I have two screens, screen1 and screen2.  Each screen has a gallery on it, gallery1 and gallery2 respectively. The screens also have forms on them that display data based on the gallery's selected item. Each gallery's items property is pointed towards the same data source, a sql table and the items property has some sort and filter syntax in it.

 

I've set up the OnSelect property of a label in gallery2 to set a variable to the selected item's id and then to navigate to screen1. I want the gallery on screen1 to have it's selected item to be the value of my variable, essentially the data record of gallery2.

 

I'm trying to figure out what to set the Default property to in gallery1.  I'm not sure of the syntax to use and how to pass my variable to the Default property.

 

Any help would be appreciated.  I think I just need to know what the syntax of the Default property of a gallery should be. Its not documented very well at all.

 

Thank you!

8 REPLIES 8
mdevaney
Super User
Super User

@Dpalmer 

As a simple example, lets say you have a gallery that looks like this:

 

------

ID:  1

------

ID:  2

------

ID:  3

------

ID:  4

------

ID:  5

------

 

Assuming the Items property of the gallery is populated using this code

 

your_datasource_name

 

The Default property could be used to select the 2nd record using this code.

 

LookUp(your_datasource_name, ID=2)

 

To highlight the 2nd record you would put this code in the TemplateFill property of the gallery.

 

If(ThisItem.IsSelected, Blue, White)

 

The result is:

------

ID:  1

------

ID:  2

------

ID:  3

------

ID:  4

------

ID:  5

------

---
Please click "Accept as Solution" if my post answered your question so that others may find it more quickly. If you found this post helpful consider giving it a "Thumbs Up."

@Dpalmer 

To answer your question more directly though, if you have already set a variable to store the ID of Gallery2 like this

Set(myVariableID, Gallery2.Selected.ID)

 

You can set the Default selected value in Gallery1 like this

LookUp(gallery2_datasource_name, ID = myVariableID) 

 

---
Please click "Accept as Solution" if my post answered your question so that others may find it more quickly. If you found this post helpful consider giving it a "Thumbs Up." 

v-yutliu-msft
Community Support
Community Support

Hi @Dpalmer ,

Do you want to know how to set a gallery's Default property?

 

Firstly, let me explain the meaning of a gallery's Default property.

It means that the gallery's default selected item.

If you do not use any formula in its Default property, it will be the first item in the gallery by default.

For example:

If you set an edit form's Item to: Gallery1.Selected

If you do not have any formula in Gallery1's Default property, the edit form will display the first item by default.  (before you select any item in the gallery)

If you use a formula in Gallery1's Default property , the edit form will display the item that you set in the Default property by default.(before you select any item in the gallery)

36001.gif

 

 

Secondly, what formula you should use in a gallery's Default property?

As I've explained, the Default property is used to set a gallery's default selected item.

So you need to fill in a formula that represents a record inside the gallery.

Now, I use the case that you mentioned as an example:

1)set the navigate button's OnSelect in gallery2:

Set(var,Gallery2.Selected.ID)

2)Set gallery1's Default:

LookUp(data source,ID=var)
//replace with the data source in gallery1

//filter the same item that you select in gallery2

Then the form that its Item is gallery1.Selected will display the item that you select in gallery2 by default.

 

 

 

Best regards,

Community Support Team _ Phoebe Liu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Dpalmer
Helper III
Helper III

Thank you all for the replies.

 

So I have set the value for the Default property of the gallery to:

LookUp('[dbo].[People]', PeopleId = SelPerson)   with SelPerson being the variable and PeopleId the value in the sql table.

What I'm seeing as possibly the problem is the Items property of the gallery. My value for the Items property is: 

Sort(Filter('[dbo].[People]', Active = "Y"), Last_Name, Ascending)

When using that for the Items property, the gallery will not select the proper default record.  If I use this value:

Sort('[dbo].[People]', Last_Name, Ascending) , the gallery will select the proper default record. If I use this value:
Filter('[dbo].[People]', Active = "Y") , the gallery will not select the proper default record.

 

So it seems to have something to do with using "Filter" in the items property.

 

Any thoughts on this?

 

Thanks

 

Hi @Dpalmer ,

If you set the gallery's default to "LookUp('[dbo].[People]', PeopleId = SelPerson)" , and set the gallery's Items to "Filter('[dbo].[People]', Active = "Y")", only if there's record that both meet the two conditions, the gallery will select the proper default.

Are you sure there's record that both meet the two requirenments: "PeopleId = SelPerson", "Active = "Y""?

You could check this by setting the gallery's Items to :

LookUp('[dbo].[People]', PeopleId = SelPerson,Active = "Y")

If there's nothing in the gallery, it means there's no record meets the two conditions at the same time.

 

 

Best regards,

 

Community Support Team _ Phoebe Liu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Dpalmer
Helper III
Helper III

Again, thanks for the replies,

Yes, the filter should meet the criteria for records in the table.

What I've done is pulled the table into a collection and used that as the source for the data.  Same data, all columns and all records in the Collect statement.  This works just fine and the gallery will default to the proper record.

Why is this an issue when connecting directly to the Azure SQL db?

Thanks,

Hi @Dpalmer ,

Maybe the problem is about azure sql, not your formulas.

Please notice sql these limitations:

1)you need to have primary key in your sql table to get items

2)The following data types cannot be used as query option predicates:

  • date
  • datetime
  • datetime2
  • smalldatetime

3)not supports all data type of sql

4)delegation problem

5)API calls per connection max limit: 100/10 seconds

 

Here's a doc about this connector , please check whether the connector's limitations effect your app:

https://docs.microsoft.com/en-us/connectors/sql/

 

 

Best regards,

Community Support Team _ Phoebe Liu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
AhmedSalih
New Member

If you have Gallery1 in Screen1, Gallery2 in Screen2, Gallery2 will not see any Gallery1.selected Variable from Screen1. You will need to use Gloabal variable and store the value of Gallery1.selected Variable in it, then use that Global Variable to filter the data to Gallery2 in Screen2. 

 

** For Galleries to see each other .Selected variables, they have to be on the same screen, or on a Popup in the same screen.

Helpful resources

Announcements
PA_User Group Leader_768x460.jpg

Manage your user group events

Check out the News & Announcements to learn more.

Community Connections 768x460.jpg

Community & How To Videos

Check out the new Power Platform Community Connections gallery!

Welcome Super Users.jpg

Super User Season 2

Congratulations, the new Super User Season 2 for 2021 has started!

Carousel 2021 Release Wave 2 Plan 768x460.jpg

2021 Release Wave 2 Plan

Power Platform release plan for the 2021 release wave 2 describes all new features releasing from October 2021 through March 2022.

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