# Flex Repeater Events for Instance Selection

**URL:** <https://forum.inductiveautomation.com/t/flex-repeater-events-for-instance-selection/114296>\
**Category:** Ignition\
**Tags:** perspective, troubleshooting\
**Created:** [March 3, 2026, 5:26pm UTC](https://forum.inductiveautomation.com/t/flex-repeater-events-for-instance-selection/114296 "2026-03-03T17:26:58Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![gavinw0606](https://avatars.discourse-cdn.com/v4/letter/g/ec9cab/32.png) [@gavinw0606](https://forum.inductiveautomation.com/u/gavinw0606)\
**Post date:** [March 3, 2026, 5:26pm UTC](https://forum.inductiveautomation.com/t/flex-repeater-events-for-instance-selection/114296/1 "2026-03-03T17:26:58Z")

</div>

My goal is to determine which instance of a flex repeater the user has clicked on and navigating to a new screen, pass either the index of that instance or the instance tank property through a custom property on the flex repeater. My flex repeater instances successfully update to show the accurate index data so my assumption is that my instance properties are accurately defined, but the view.param.tank does not update to match the tank property of the selected instance, so whatever value I left in the designer as the value for view.param.tank is assigned to the custom property on each click.

I have been referring to a few similar examples on this site where this design seems to work, so I’ve included screenshots of all the information I think is critical to this page’s architecture.

 ![Screenshot 2026-03-03 111745](https://us1.discourse-cdn.com/inductiveautomation/original/3X/7/b/7b0bc1bae430790078065112f5f9b1792050e967.png)

 ![Screenshot 2026-03-03 111643](https://us1.discourse-cdn.com/inductiveautomation/original/3X/8/8/88a535f6562433f3e625e078a2763351f2471ffd.png)

 ![Screenshot 2026-03-03 111613](https://us1.discourse-cdn.com/inductiveautomation/original/3X/9/6/966e11476490c8ccf86608586a0a3f02cf500322.png)

---

<div class="post-metadata">

**Author:** ![ryan.white](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ryan.white/32/73193_2.png) [@ryan.white](https://forum.inductiveautomation.com/u/ryan.white)\
**Post date:** [March 3, 2026, 5:43pm UTC](https://forum.inductiveautomation.com/t/flex-repeater-events-for-instance-selection/114296/2 "2026-03-03T17:43:38Z")

</div>

Use `system.perspective.navigate` to navigate to the new page based on your selection and pass the necessary parameters to the page as part of that call. You would have something like

```python
system.perspective.navigate(
    '/tank/detail',
    params={'tank': self.view.params.tank})

```

in your template's `onClick` script.

Either that or have your message handler do the navigation. The params argument would look more like `params={'tank': payload['tank']}` in that case.

> **[system.perspective.navigate | Ignition User Manual](https://www.docs.inductiveautomation.com/docs/8.1/appendix/scripting-functions/system-perspective/system-perspective-navigate)**
>
> Navigate the session to a specified view or mounted page.

---

<div class="post-metadata">

**Author:** ![gavinw0606](https://avatars.discourse-cdn.com/v4/letter/g/ec9cab/32.png) [@gavinw0606](https://forum.inductiveautomation.com/u/gavinw0606)\
**Post date:** [March 3, 2026, 5:58pm UTC](https://forum.inductiveautomation.com/t/flex-repeater-events-for-instance-selection/114296/3 "2026-03-03T17:58:37Z")

</div>

Thanks for the quick reply, this is super helpful but I should have been more specific with the root of my issue currently.

Making references to self.view.params.tank parameter has been futile as this parameter does not change in my project. For an example, say I define the parameter in my designer as view.params.tank = 3. The value does not matter, because the flex repeater instances have their own definition of an instance property = tank: \_\_. Whenever I execute the onClick and message events, self.custom.selected becomes equal to self.view.params.tank, but that parameter is still equal to 3. So I don’t get any useful data to determine what instance was clicked.

Based on what I’ve seen as a solution on here, self.view.params.tank would hold the index of whatever flex repeater component was selected (please correct me if I’m wrong here), which is passed to a custom property or in your example as a navigation parameter. But in my case the self.view.params.tank value never updates despite flex repeater instances accurately populating.

---

<div class="post-metadata">

**Author:** ![gavinw0606](https://avatars.discourse-cdn.com/v4/letter/g/ec9cab/32.png) [@gavinw0606](https://forum.inductiveautomation.com/u/gavinw0606)\
**Post date:** [March 3, 2026, 6:10pm UTC](https://forum.inductiveautomation.com/t/flex-repeater-events-for-instance-selection/114296/4 "2026-03-03T18:10:30Z")

</div>

Okay I just discovered where my mistake was! I’ll include the solution in case anybody else runs into the same bug, though this was a pretty basic overlook on my part:

My onClick script was configured on the root of the same view as the flex repeater, in which the view.params.tank parameter is unused so of course the value is never altered. Where this onClick script should be configured is the view that is accessed through the flex repeater. This view has received the instance property as the views parameter, so a reference to this parameter will be the same as that instances tank property (at least in my design architecture).

 ![Screenshot 2026-03-03 120853](https://us1.discourse-cdn.com/inductiveautomation/original/3X/1/1/11b3235b6b3b3fd5431437af99bde926408f94ce.png)

This view (the embedded view for each flex repeater instance) should have the onClick event on it’s root

---

<div class="post-metadata">

**Author:** ![Jose\_Hervas\_Chico](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jose_hervas_chico/32/69260_2.png) [@Jose\_Hervas\_Chico](https://forum.inductiveautomation.com/u/Jose_Hervas_Chico)\
**Post date:** [March 5, 2026, 1:28pm UTC](https://forum.inductiveautomation.com/t/flex-repeater-events-for-instance-selection/114296/5 "2026-03-05T13:28:14Z")

</div>

> [@gavinw0606](#):
>
> figured on the

Hello! and how do you know which instance is clicked to pass the parameter?

---

<div class="post-metadata">

**Author:** ![pascal.fragnoud](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pascal.fragnoud/32/24728_2.png) [@pascal.fragnoud](https://forum.inductiveautomation.com/u/pascal.fragnoud)\
**Post date:** [March 5, 2026, 2:16pm UTC](https://forum.inductiveautomation.com/t/flex-repeater-events-for-instance-selection/114296/6 "2026-03-05T14:16:11Z")

</div>

Use a unique parameter.  
There's one that's built-in, I think it's `index` or `instanceIndex`. Something like that.  
You'd still have to create it in the repeated view, but its value is passed automatically.

This may not be unique if you have nested repeaters, in which case you'll need to find something else. I used uuids in the past for that.

Send that unique identifier in the payload, so you can identify which instance was clicked in the message handler.

---

<div class="post-metadata">

**Author:** ![amarks](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/amarks/32/45610_2.png) [@amarks](https://forum.inductiveautomation.com/u/amarks)\
**Post date:** [March 5, 2026, 3:09pm UTC](https://forum.inductiveautomation.com/t/flex-repeater-events-for-instance-selection/114296/7 "2026-03-05T15:09:32Z")

</div>

Why not handle this at the "template" level? The template instance in the repeater already knows which instance it is. Just add a `navPage` parameter that is default none. Then if no string is provided disable the navigation, if a page is provided handle navigation to that page within the template scripting.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [March 5, 2026, 3:12pm UTC](https://forum.inductiveautomation.com/t/flex-repeater-events-for-instance-selection/114296/8 "2026-03-05T15:12:26Z")

</div>

> [@amarks](#):
>
> template level?

_Psssst!_ Perspective, not Vision.

---

<div class="post-metadata">

**Author:** ![amarks](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/amarks/32/45610_2.png) [@amarks](https://forum.inductiveautomation.com/u/amarks)\
**Post date:** [March 5, 2026, 3:13pm UTC](https://forum.inductiveautomation.com/t/flex-repeater-events-for-instance-selection/114296/9 "2026-03-05T15:13:24Z")

</div>

ah. Does that change much though? Just add the parameter to the view that is used as the "template" in the repeater, right?

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [March 5, 2026, 3:13pm UTC](https://forum.inductiveautomation.com/t/flex-repeater-events-for-instance-selection/114296/10 "2026-03-05T15:13:51Z")

</div>

As Pascal already pointed out.
