cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
AsgeirAlbretsen
Frequent Visitor

Get the amount of items in a gallery

I'm trying to create an If statement that depends on the amount of items in a gallery. From a quick Googling session, I found that "If(CountRows(Gallery_1.AllItems) = 1, 570, 4)" should do the trick, but I'm getting an error. Gallery_1.AllItems says "The specified property is not accesible in this context", and the CountRows then gives "The function 'CountRows' has some invalid arguments". The If is under the X value of the first item in the gallery. My goal is to position the first item based on the amount of items in the gallery. Any ideas on how to fix the errors?

7 REPLIES 7
SimonPiquer
Responsive Resident
Responsive Resident

Hi!

 

You code works for me when I try it out. What happens if you create a new label with the Text property set to 

CountRows(Gallery_1.AllItems)

Do you get the correct number of rows then? 

What is the datasource you are using/what is the gallery's Items property set to?

Could you provide some screenshots?

 

Thanks!

It works perfectly fine in a label for me as well! My data source is SharePoint and the items property is set to:

 

"If( IsMatch(TextInput_ProjectNumSearch.Text, ""), Filter(Documents, StartsWith('Project number', "1234567890")), Filter(Documents, StartsWith('Project number', TextInput_ProjectNumSearch.Text)))"

 

@SimonPiquer 

Anonymous
Not applicable

If(CountRows(Gallery3_1.AllItems) = 1,1000,500)

does work, only not if it is part of the gallery it is calculating about.

 

What could try is to set a calculation which says:

If(ThisItem.field1 = First(Datasource of gallery).field1, 100, 200)

@Anonymous 

 

That is a really odd limitation. I need to know the amount of items in the gallery, to edit the gallery position. If there is only 1 item, output 570. If it's 2 items output 400 etc. This would be very easy if I could just use AllItems. Limiting the ability to edit values makes sense when there is a danger of infinite loops, but editing the position should have no danger of infinite loops.

Anonymous
Not applicable

almost an infinity loop but really dangerous for performance.

imagine that for each record you are gonna read all records from the list.

so a list of 200 items: you can say for each item i will get all items.

it will call 200 * 200 records 40000!!

 

that's why 🙂

@Anonymous 

 

That makes sense. I'm sure I will never get more than 5 files at once though. Do you know of a way to circumvent this limitation?

Anonymous
Not applicable

If you only want to check if a record is the first one of the gallery, check my previous answer about the comparison of thisitem.value againt the datasource of the gallery with a first applied to it

Helpful resources

Announcements
PA User Group

Welcome to the User Group Public Preview

Check out new user group experience and if you are a leader please create your group

Power Apps Community Call

Monthly Power Apps Community Call

Did you miss the call?? Check out the Power Apps Community Call here!

secondImage

Experience what’s next for Power Apps

See the latest Power Apps innovations, updates, and demos from the Microsoft Business Applications Launch Event.

Power Platform ISV STudio

Power Platform ISV Studio

ISV Studio is the go-to Power Platform destination for ISV’s to monitor & manage applications post-AppSource publish.

Top Solution Authors
Top Kudoed Authors
Users online (40,043)