Pass row data in navigate url parameter

I have a functionality where a user can double click on a table row and it will redirect you to another page. I have a navigate event with one parameter being passed, which is the row's ID. This navigate is placed on the table's onRowDoubleClick event. Currently, how I am obtaining and passing the row ID is through a parameter that is binded to the table's selection.data[0] prop. This seems to work okay, but I've found a problem where if users were to double click too quickly the parameter passed would be null since the selection data would not be initialized in time. I was wondering if there was another way I could obtain and pass the row data through the navigation url param or another way to approach this functionality.

onDoubleClickEvent:

Parameter Binding:
image

1 Like

Use a script instead, passing the data of the event. In your case, the row.

row:

The unique row index as it is represented in the source data. Also known as the row ID.

Implement like so:

def runAction(self, event):
	rowId = event.row
	system.perspective.navigate(page="/Edit/{0}".format(rowId))

Be cautious in doing this however, as many users get hung up due to type differences when using params in navigation. In instances like this where the page being navigated to expects a numeric value instead of a string, make sure you're handling incoming params in a type-safe manner, ie: make sure you're casting this incoming param used as a rowId as an int.

2 Likes

Thank you for pointing me in the right direction. I utilized event.value to retrieve the row data. More specifically I used event.value.SubmissionId to retrieve the ID. Sorry for the poor wording, looking back I stated I needed row ID, but what I should've said is the ID column. Thanks again.

1 Like