I have had many occasions where when a gallery item (sharepoint list) is selected for edit in a form, when the app navigates to the form, the data is there, and it appears to "POP" like a refresh, and a totally different gallery item appears in the form! If I back out of the form, then select the gallery item a second time, it appears to come in fine. This is a serious problem, because it is not 100% repeatable, so it doesnt appear to be a coding problem. Plus, this form has worked for several months previous.
A similar, but related problem... I have seen data in these fields "pop" to different values AFTER submission, prior to navigating back to the gallery screen. When I check the item edited, it looks like the values are correct. However, also seeing the other issue, and reading a comment made in another post, I'm not convinced that some data was changed in some other item. I have too many items to know how to check for that. But, if there is data being written in other items, there is a serious "system down" situation here.
I am already having issues with undefined "Server Errors" that I have been trying to get support for. MS PA support has not gotten back with me for over 7 days after submitting a ticket. I submitted another ticket yesterday, because I'm absolutely desparate!
I need some help here, big time.
This is concerning! I wish I had some advice to give. I am replying becuase I would like to follow this and know the outcome and to ask that you please keep us updated.
I had a discussion with @PaulD1, he had similar issues. He also helped me realize that the item that come in erroneously is always the FIRST ITEM in the gallery. The same wrong item issue was also the first item in the list as well for his issue, and that id just started happening not long ago.
How is the gallery connected to the edit form? Specifically, what is the EditForm.Item set to? Setting it to Gallery.Selected may give unreliable results because the Selected item is a "live" value. For example, if the gallery items refresh in the background, Gallery.Selected will be the first item if the previously selected item no longer exists.
Another thing worth checking is if there are any ResetForm calls in the app.
Hmm... This one has me perplexed. I get what you are saying about the ResetForm() command. I did have one that I removed. That seems to have fixed this issue. However, I do have a question regarding your statement about .item being Gallery.Selected. Navigation to the screen is initiated from a gallary selection. Yes, the form uses gallery.selected as the .item. Please explain... if it is not gallery.selected, then what on earth do you use for the .item? I thought that was plainly logical. When I create a default sharepoint app, it uses gallery.selected as default .item. What else would I use?
The way my app works, only one user has edit access to the item. So, there is no chance that an item can be edited by two different people. I think that is what you meant by items changing. That is simply not possible with my app. I do understand if two people happened to be editing the same item, that unpredictable results would occurr. I'm not sure how the .item being different than gallery.selected would change that fact. What would fix that would be locking the item from editing when someone else has it open. Sounds like a good idea for some apps. Mine is not affected because item view is dependent on user, and only one user can see a gallery item, since it is assigned to only one user.
The issue still remains. Despite there being no ResetForm() commands, the first time I pick a gallery item, it pops to the first item in the list. It does not seem to happen after the first time.
Ok, this is really a problem now. I have seen more than once, in the same session, where data is coming in from other items in my form! Also, data saved in the form is actually NOT saved. This is a big problem now. I NEED HELP!!!!
It looks like you've sorted this out with Set().
I've answered a similar question on this topic before:
As @RandyHayes mentioned, Gallery.Selected is a moving target. If you want other controls to respond to Gallery.Selected as it changes, point them to Gallery.Selected. For instance, suppose you have two galleries on a screen: one gallery is used to filter another gallery. The filtered gallery would point to the first gallery using Gallery.Selected.
Gallery.Selected is also useful if you have a Default item for the gallery. You could move the selection where you need it by changing the Default property.
But if you do not want something to move or if a gallery is subject to change (i.e. a live datasource), then the best practice is to set your selection to a variable as you have done.
Depending on what you are trying achieve, you'll use one experience or another.
We're excited to announce our first cross-community 'Can You Solve These?' challenge!
Reopen responsibly, monitor intelligently, and protect continuously with solutions for a safer work environment.
We are excited for the next Super User season.
FIll out a quick form to claim your community user group member badge today!
Features releasing from October 2020 through March 2021