cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Maharshiii
Level: Powered On

Looking to navigate to other screen on select and also get the row selected along

Hi, 

I've created two screens .   1- search 2- Edit

 

On the search page, there's a table. When I search using one entity, say last name, it'll filter the table and show only the rows that include the last name.  And when we click on the edit button at the end of the page, after selecting one of the row, it'll navigate to Edit screen. I used Navigate( Edit, fade ) to do that.

 

Now what I'm looking for is that, when I select a row and click edit button, along with just navigating to Edit screen, I want the row I selected to be shown in the edit page. 

How do i do that?

 

1 ACCEPTED SOLUTION

Accepted Solutions
samuelJ
Level 8

Re: Looking to navigate to other screen on select and also get the row selected along

You could set a global variable when clicking your edit button: 

Set(myVar, Gallery1.Selected.ID)

Then in the edit screen (Not sure if youre populating a gallery, form or something else here) you can use something the Filter() function in your Items() property of your gallery to something like:

Filter(myDataSource, ID = myVar)

or if its a form, use the Filter() function in the default() property.


View solution in original post

7 REPLIES 7
Super User
Super User

Re: Looking to navigate to other screen on select and also get the row selected along

Hi @Maharshiii,

You can use the optional third element of the Navigate() function to set a context variable that you can use to filter the datasource for the EditForm on the second screen. ie. Navigate(Screen2,None,{selectedID:Gallery1.Selected.ID}).  Then on the EditForm on the second screen, you would set the DataSource to the same one as Gallery1 and the Item property to Lookup(Datasource,ID=SelectedID).

Tips: Precede the Navigation function with EditForm(Form1);  Navigate(Screen2, None, {selectedID :Gallery1.Selected.ID}) to make sure that the Edit form is in the correct mode when you navigate to it.

The datasource on an EditForm must be an actual datasource (Excel or Sql table, Sharepoint list, CDS entity, etc.) and not a collection. 

Community Support Team
Community Support Team

Re: Looking to navigate to other screen on select and also get the row selected along

Hi @Maharshiii,

Could you please share a bit more about the table that you mentioned? Is it a Data table control or a Gallery control?

If the table that you mentioned within your first screen is a Data table control, if you want to pass the selected row within the Data table to the Edit screen, I have made a test on my side, please take a try with the following workaround:10.JPG

 

11.JPG

Within the first screen, set the OnSelect property of the "Edit" button to following:

Navigate(Screen2,ScreenTransition.Cover,{SelectedItem: DataTable1.Selected});
EditForm(Form1)

Within the Edit screen, set the Item propert of the Edit form control to following:

SelectedItem

Note: The Edit form connects to same data source as that within your Data Table control.

 

If the Table that you mentioned is a Gallery control, please take a try with the following workaround:

Set the OnSelect property of the "Edit" button within your first screen to following:

Navigate(Screen2,ScreenTransition.Cover,{SelectedItem: Gallery1.Selected});
EditForm(Form1)

Set the Item property of the Edit form within your second screen to following:

SelectedItem

 

Best regards,

Kris

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.
Maharshiii
Level: Powered On

Re: Looking to navigate to other screen on select and also get the row selected along

Hey, this only works if both pages have same data source. But I have different data sources is both the pages. Only thing that's common in both of them is "ID". So, when I select the row in page 1 from Data source 1 and press edit, it should navigate to the page 2, with data source 2 and should be able to show the row from data source 2, with same ID as selected in Page 1. 
Please update me.
Thank you.

samuelJ
Level 8

Re: Looking to navigate to other screen on select and also get the row selected along

You could set a global variable when clicking your edit button: 

Set(myVar, Gallery1.Selected.ID)

Then in the edit screen (Not sure if youre populating a gallery, form or something else here) you can use something the Filter() function in your Items() property of your gallery to something like:

Filter(myDataSource, ID = myVar)

or if its a form, use the Filter() function in the default() property.


View solution in original post

Super User
Super User

Re: Looking to navigate to other screen on select and also get the row selected along

@Maharshiii,

There is no such thing in Powerapps as a page.  I am assuming that you mean screen.  Kris's solution works as long as the datasources for both screens are exactly the same. The datasource for the Edit form cannot be filtered or be a collection, but must be an actual datasource.  If the datasources are different between the DataTable and the Edit form, you need to be more specific on the Edit form.  So I would agree with Kris ALMOST. The Item property of the Edit form must specify Lookup(datasource2,ID=DataTable1.Selected.ID) This assumes the table on your Search screen is named DataTable1. As both @v-xida-msft and I suggested, you could use the Navigate command to pass a context variable between the two screens. The Edit button would be Navigate(Screen2,ScreenTransition.Cover,{SelectedItem: DataTable1.Selected.ID});EditForm(Form1) and the Edit form Item property would be Lookup(datasource2, ID= SelectedItem)

 

However, I am wondering about the relationship between the two datasources you are referencing.   If there is a one to many relationship between them, then there could be several records in the second datasource with the same foreign key (the ID field that you speak of).  If this is the case, how do you know which of them you will edit? If it is a one to one relationship, then you could have all the fields in one table and you wouldn't need a second datasource. 

Super User
Super User

Re: Looking to navigate to other screen on select and also get the row selected along

Hi @samuelJ,

You are correct that you could use a Set function to create a global variable to filter the Items in a second gallery or datatable as an alternative to using the third element of the Navigate function.  However, there is no such thing as a Default property of an Edit form.  I am assuming that you mean the Item property.  Moreover, you cannot use Filter in the Item property as the Item must be a single record so Lookup() is the correct usage as it chooses only one record.  If there are more than one record with the same field value, the first one is chosen by default.  Filter() returns a table, even if it is a single record table. .   

Maharshiii
Level: Powered On

Re: Looking to navigate to other screen on select and also get the row selected along

Thank you, that worked perfectly. 

Helpful resources

Announcements
thirdimage

Power Automate Community User Group Member Badge

Fill out a quick form to claim your user group badge now!

sixthImage

Power Platform World Tour

Find out where you can attend!

Power Platform 2019 release wave 2 plan

Power Platform 2019 release wave 2 plan

Features releasing from October 2019 through March 2020

fifthimage

Microsoft Learn

Learn how to build the business apps that you need.

Top Kudoed Authors
Users Online
Currently online: 176 members 6,253 guests
Please welcome our newest community members: