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

SharePoint Custom Forms navigation doesn't work in DispForm.aspx

Hello,

 

I have a SharePoint list and 3 custom forms (View, Create, New) which correctly interact with that SharePoint list.  So far I was able to solve all the requirements I got but now I'm stuck on one thing which I thought will actually be quite trivial to solve, unfortunately it's not.

Basically we have a solution in place which automatically sends an email in case there's new item added or modified in SharePoint list with an URL pointing to "DispForm.aspx" page with that particular item ID and user can click on a link in that email:

Capture3.JPG

what then opens an item in browser for example like this:

 

Capture.JPG

 

User can edit an item when clicks on "Edit All" button however the issue I'm struggling with is that once user saves that change (clicks on "Save") she/he is redirected to the "AllItems.aspx" with all the items instead of staying in that previous view (DispForm. aspx). I was able to modify it (basically by removing "RequestHide()" from "OnSuccess" property of EditForm and adding navigation to the "ViewForm") what means that if user clicks on "Save" it still remains in that "ViewForm" within DispForm.aspx page but in that case buttons don't change from Save and Cancel back to Edit All:

 

Capture2.JPG

 

So expected behavior is that user clicks on link -> particular item is shown -> users click on "Edit All" (EditForm is launched) and makes changes -> user clicks on "Save" -> changes are submitted (and ViewForm is launched) and "Save / Cancel" buttons also change back to Edit All (user can basically perform another change again). I was playing with "OnSucess", "OnSave" and whatever other properties and even thought Edit and View forms are launched as expected (can be also seen on above screenshots - red View/Edit indication) I was still not able to make it behave as expected.

Either the page is redirected to complete list of items (AllItems.aspx) or it remains on that particular item view but "Save" and "Cancel" buttons are still present while they should change back to "Edit All". 

The similar issue I have also with "Cancel" button - when user clicks on Cancel it's expected that the previous view of that particular item should still display but it's redirected to complete list of items instead.

 

I have an workaround that in case user clicks on "Save" or "Cancel" the particular URL is launched (with the same item ID) what indeed leads to opening the view only of that particular item however this is always opened in a new tab what is not convenient.

 

I'd really appreciate if anyone could advise me any possible solution how to always stay on that particular item view after "Save" or "Cancel" is clicked and also change buttons to "Edit All" instead of redirecting to the list of all items.

 

 

Thanks

 

 

 

6 REPLIES 6
Community Support
Community Support

Hi @pitrs ,

Could you please share a bit more about your scenario?

Do you want the form to stay in View Form when you click "Save" or "Cancel" button? And you want to change "Save" and "Cancel" button to "Edit All" when you navigate to your View form?

Further, could you please share more details about the formula you typed within the OnStart property of the SharePointIntegration control?

 

If you want the form to stay in View Form when you click "Save" or "Cancel" button, please take a try with the following workaround:

Set the OnSave property of the SharePointIntegration control to following:

SubmitForm(EditForm)

Set the OnSuccess property of the Edit form to following:

Navigate(ViewFormScreen);
ViewForm(ViewForm1)

 

Set the OnCancel property of the SharePointIntegration control to following:

Navigate(ViewFormScreen);
ViewForm(ViewForm1)

 

But if you want to change "Save" and "Cancel" button to "Edit All" when you navigate to your View form, I afraid that there is no way to achieve your needs in PowerApps currently.

Actually, the "Cancel" button, "Save" button, and "Edit All" button belong to SP List rather than PowerApps Custom Form App. Currently, there is no way to control the visible of the "Cancel" button, "Save" button, and "Edit All" button in a SP List UI from a canvas app.

If you would like this feature to be added in PowerApps, please submit an idea to PowerApps Ideas Forum:

https://powerusers.microsoft.com/t5/Power-Apps-Ideas/idb-p/PowerAppsIdeas

Note: The "Edit All" button could only be visible when you click specific record in your SP List manually.

 

Best regards,

Community Support Team _ Kris Dai
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Thanks for reply !

 

Yes, I'd like to stay in ViewForm after Save or Cancel. So basically user clicks on Edit All, it navigates to EditForm where user can edit fields and then after Save it returns back to ViewForm (where fields are Read Only of course). But this is something what I was already able to do (using below implementation), the problem is just after user hits Save then Save and Cancel buttons are still there and I would assume they change back to Edit All so user could basically perform another change if necessary. Now it's possible only in case user refreshes page manually.

 

These are the details of my current implementation:

 

OnNew property of the SharePointIntegration:

 

Set(SharePointFormMode, "CreateForm_read"); 
NewForm(CreateForm_read); Navigate(CreateScreen_read, ScreenTransition.None)

 

 

OnEdit property of the SharePointIntegration:

 

Set(SharePointFormMode, "EditForm");
EditForm(EditForm); Navigate(EditScreen, ScreenTransition.None)

 

 

OnView property of the SharePointIntegration:

 

Set(SharePointFormMode, "ViewForm");
ViewForm(ViewForm); Navigate(ViewScreen, ScreenTransition.None)

 

 

OnSave property of the SharePointIntegration:

 

If(SharePointFormMode="CreateForm", SubmitForm(CreateForm), 
If(SharePointFormMode="ViewForm",  SubmitForm(ViewForm), 
If(SharePointFormMode="EditForm",  SubmitForm(EditForm), 
If(SharePointFormMode="EditForm_new", SubmitForm(EditForm_new)))))

 

 

OnSuccess property of the EditForm:

 

ViewForm(ViewForm);
Navigate(ViewScreen, ScreenTransition.None)

 

 

OnCancel property of the SharePointIntegration:

 

If(SharePointFormMode="CreateForm", ResetForm(CreateForm), 
If(SharePointFormMode="EditForm", 
Set(SharePointFormMode, "ViewForm"); ViewForm(ViewForm); Navigate(ViewScreen, ScreenTransition.None), 
If(SharePointFormMode="ViewForm",
Set(SharePointFormMode, "ViewForm"); ViewForm(ViewForm); Navigate(ViewScreen, ScreenTransition.None), If(SharePointFormMode="EditForm_new", ResetForm(EditForm_new)))))

 

 

And I don't have OnStart property of the SharePointIntegration control, at least I cannot see it there.

 

As mentioned even thought the Edit and View forms correctly change those Save and Cancel buttons still remain so if user wants to perform another update after Save she/he needs to refresh the page manually to Edit All button appear again. This would be probably not a big problem for users (we could tell users to always do so if necessary), what is however more "unfriendly" is that once clicking on Cancel it always redirects to complete list of all items (AllItems.aspx) and don't stay in that view of particular item (DispForm.aspx).

 

 

Hi @pitrs ,

The OnStart property belongs to App control rather than SharePointIntegration control.

 

Based on the issue that you mentioned, I have made a test on my side, and the issue is confirmed on my side. Actually, it is an known issue with OnCanel property of SharePointIntegration control.

 

When you fire the OnCancel event of SharePointIntegration control, it would call backend cancel mechanism of SP List rather than custom form app. So no matter which Navigate formula you typed within the OnCancel property of SharePointIntegration control in your custom form app, it would ignore it.

 

If you would like to get further help in your issue, please consider submit an assisted support ticket through the following link:

http://powerapps.microsoft.com/en-us/support/pro

 

Best regards,

Community Support Team _ Kris Dai
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Ok, I understand but is that issue of OnCancel property of SharePointIntegration control only when using Navigate functions ?

 

Because as I also mentioned earlier I have one workaround to still stay on particular item specifying following on OnCancel property of the SharePointIntegration control:

 

Set(varid, DataCardValue26.Text);
Launch(Concatenate("https://MYsharepoint.com/sites/test/Lists/Ticket%20System/DispForm.aspx?ID=", Text(varid)))

 

 

what reopens that DispForm.aspx with particular item again (first item ID is saved into variable "varid" and then url is launched with that specified ID). The only disadvantage in this case is that it's always opened in a new tab.

 

I just wanted to say that in this case OnCancel property of the SharePointIntegration control works as expected so I assume there's only an issue with Navigate functions within OnCancel property of the SharePointIntegration control ?

Frequent Visitor

Btw. meanwhile I also double checked what is under OnStart property of the App but there is nothing, I mean it's empty.

Do you recommend to specify anything there what might help with my scenario ?

 

Thanks

Helpful resources

Announcements
New Badges

New Solution Badges!

Check out our new profile badges recognizing authored solutions!

New Power Super Users

Congratulations!

We are excited to announce the Power Apps Super Users!

Power Apps Community Call

Power Apps Community Call: February

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

Microsoft Ignite

Microsoft Ignite

Join digitally, March 2–4, 2021 to explore new tech that's ready to implement. Experience the keynote in mixed reality through AltspaceVR!

Top Solution Authors
Top Kudoed Authors
Users online (20,404)