Hi,
I have a Flex Repeater in Ignition Perspective (ignition platform version: 8.1.43).
The parent view runs one query and gets a dataset.
The repeater should create one instance per row.
Possible ways to pass the row data to each instance:
Pass the whole row (dataset row / dict) as a view param.
Pass the whole dataset + a rowIndex, and let the child pick its row.
Pass only the row ID and run a query in each child (looks inefficient from a DB perspective).
Pass only the row ID, keep the full dataset in session.custom, and let each child look up its row there.
Encode the row as a JSON string and pass that — we tried this, but ran into issues with date fields not round-tripping correctly.
Question:
Which of these approaches is the recommended / supported way for a Flex Repeater?
Any known issues with the above patterns?
I think it depends on the number of parameters your view has. From a testing perspective I find it much easier to pass in the row ID and then run a query from there, but as you pointed out this can be inefficient if your polling the parameters frequently. If you do one poll for setup and then no more, I'd say the cost is worth it for the developer ergonomics. If you only have a 2 or 3 params for the sub-view passing the row is just fine as its easy enough to test, past that I might rethink the design.
Spin up this exchange resource on a dev gateway and check out how @pturmel’s PageVarMap is used on this: Tag Report Utility . It’s ridiculously high-performance. The same way this creates a PageVarMap for views embedded within a table could be used for views in a Flex Repeater, View Canvas, etc.