Hi All
I've been struggling with this issue where the Browser Gallery Selected Item is not displaying the correct selected item. It is reverting back to the first Item on the list... but not really... Bare with me, please 🙂
Here are the "Gallery items":
Once selected, I have a display form showing the record details. The attachment below: "Record Details"
When I view another vessel it displays everything the first record did, however, the status field which is a choice field and the Vessel Name are correct. as seen in "Record details 2", I do have an Upper() on the vessel Name and I believe that's why it is displaying correctly. I can't explain why the status field is working correctly as the cargo is also a choice field however a multi-select choice field(Not working). but this leads me to believe that the correct item is being selected otherwise we would not have the status and vessel name change. I have confirmed both records of data are different. I am using a SharePoint list to store the data.
Now I must state that this app is working perfectly in the web designer with no issues. only the Published version is having issues loading the correct data relating to the Display Form.
(Info) When Navigating from the gallery to the Display form, I do Navigate to another screen. I Select(Parent); Navigate to "Screen 2"
When I navigate back to my screen 1 I see the data in the form flicker to the first entry in the gallery before getting taken back to the first screen. it is almost like the Display form is stuck on the first entry it loads and only shows updated fields that the Screen 2 forces Example: an Upper(Parent.Default)
Please let me know any suggestions you may have. I hope this made sense 😞
Thank you in advance ❤️
Solved! Go to Solution.
Trust you are well, The searchable text field has no conditions on it it will always be blank and the reset is equal to false for that property. this is to allow users to filter the gallery by the title of the item.
As for the "In" function. I have a people multiselect field in SharePoint. Users add workers and clients to the two different fields, so I need to use the "In" function to allow it to "=" all the clients or all workers in that record and it would not be the same set of clients or workers for each record. it is at max 10 selected users for each column.
Just out of curiosity, The reason for setting the user() info Variable is that just a performance best practice or a functional best practice as I should be able to pull the User() info throughout the app when required.
@Mr-Dang-MSFT If it was an issue with one of the functions in the app. I would see it in the web designer when testing from there but the issue is only in the public live version of the app, Looking into the versions of power apps I see that the Public live version is PowerApps 3.18122.16 and the web designer is PowerApps 3.18122.23 could this not be the reason why it's working. I'm just spitballing here. 🙂
I previously set the gallery filter to a variable and it has seemed to have fixed the issue. I have also changed display form to individual Label fields with lookups and it is working correctly too. one drawback is that you cannot have variables in variables so if you have a sort by variable you lose it. I just put a button to change the gallery variable to sort descending.
hope this clears some of the questions up.
@RHernandez I added you just to see some of the workarounds I have used. 🙂
Many thanks
@SnowFlake can you go to File > App Settings > Advanced Settings and try turning off 'Improved app rendering' and see if it makes a difference? Note you will need to save and reopen the app to see the difference.
Re: User(). The function is volatile like Now() and Rand(), meaning that its value is subject to change. We know it likely won't change, but it works like that so it can be up to date. You have the flexibility to reference it directly or set it to a variable. As a best practice, if it's part of a calculation or condition, you should set it to a variable for performance as you don't want it changing for each case.
A few more details on my preferred method.
I set the selected record to a variable:
Set(selectedRecord,ThisItem)
Then I set the form's Item property one of two ways:
selectedRecord
LookUp(datasource,PrimaryKey=selectedRecord.PrimaryKey)
The first one is more static while the second can pull in the updated record (if someone else updated it) because it's a lookup. Here PrimaryKey is whatever the name of the column is that you use for identifying unique record.
My filter statement for the gallery is pretty straightforward....
Filter(NewEmployeeOnboarding, SupervisorName = User().FullName)
I tried turning off the 'Improved app rendering' because that has fixed some issues in the past, but it did not help in this case.
The following worked for me...
I set the selected record to a variable:
Set(selectedRecord,ThisItem)Then I set the form's Item property one of two ways:
LookUp(datasource,PrimaryKey=selectedRecord.PrimaryKey)
That being said, I do not think this is an acceptable work around. Why does the Gallery.Selected logic work in the designer, but not out of the designer? This is definitely a bug that needs to be worked out by the PowerApps team. Like @SnowFlake said, the versions between the designer and live do not match up, so there is definitely something wrong between the 2 versions.
@RHernandez, it's possible there is a bug, but from the look of your filter formulas which contain parts that can be improved (see my past posts), it's very likely the two of you have something that is reloading the gallery. And in reloading, its selection reverts to the top. I would check each control that the gallery is filtered on and even simplify your filter.
I would not consider what I shared a work-around. It's a good practice. Gallery.Selected is useful when you know the gallery is not subject to change. But if you bind a gallery directly to the datasource or a filter on it, it is subject to change as it receives new content or updates (by refresh or patch); this is by design.
So by storing your selection in a variable, and referencing the variable, you can keep the gallery bound directly to the datasource so it gets new content, but you also ensure that what you're referencing is not a moving target.
Thank you for all your help. I see what you saying about not using gallery.selected with moving parts and will not do it going forward, rather use a variable. I also agree with @RHernandez as the app should break in the designer if any functions were wrong. This not being the case in two separate scenarios, which is weird.
I will accept @RHernandez solution as it has everything needed to get past this issue if people are making apps the way we did with the gallery.selected. and encounter the issue.
@Mr-Dang-MSFT I found your youtube channel and found it very informative with tips and tricks, good job and keep it up. 🙂
Thank you all again for all the assistance with the above.
@Mr-Dang-MSFT wrote:@SnowFlake can you go to File > App Settings > Advanced Settings and try turning off 'Improved app rendering' and see if it makes a difference? Note you will need to save and reopen the app to see the difference.
This Fixed the issue for me. Thank you
Hello,
I'm getting comfortable with PowerApps.
I found myself in a similar situation where I have the entire recordset (pulled from a Sharepoint list) displayed and I have filtered screened.
When I click the "NextArrow" for record details, I'm presented with the correct information. However, when I do the same thing from the filter screen, the details don't match the source record.
I suspect the solution is as per the posting by @Mr-Dang-MSFT, but I don't know where to make the entries:
I set the selected record to a variable:
Set(selectedRecord,ThisItem)
Then I set the form's Item property one of two ways:
selectedRecord
LookUp(datasource,PrimaryKey=selectedRecord.PrimaryKey)
Thank you,
Erik
I'm in the same boat as @ErikM9 in that I think this might be my solution but am uncertain how to apply it. Any help would be appreciated. Thanks
Hello @Mr-Dang-MSFT,
I'm encountering the same issue in a hyperlinked item in a data table rather than a gallery. Clicking on it navigates to a page with a form, and on the first click on an item in the table, the item loads to the first item in the table, rather than the item selected. I tried setting a variable, like you said here in my column with the navigating hyperlink, but it will not allow me to set a variable with "ThisItem" in that context. How would you address this?
Thanks,
Z
User | Count |
---|---|
122 | |
90 | |
88 | |
75 | |
66 |
User | Count |
---|---|
218 | |
179 | |
138 | |
95 | |
72 |