You can define multiple views in the targetView array. If the user clicks the cell then the first view will be navigated to by default. On right-click > navigate to … pops up a list of the defined array and the user can select where to navigate to.
To answer your question is there a way to automatically and flexibly change the 1st element in the array depending on the context of the row. Not really. You would need to let the user decide on right-click where to navigate to.
However, the “not really” is actually a kind of via creating an attribute called “targetView” on the row dimension and storing there the ID of the app to navigate to (e.g. “a1.f1.v1”). This isn’t really flexible as the attribute name can’t be defined per view but it will definately work and fulfill your requirement of different target view navigation depending on the row context. So maybe it is actually a qualified “yes”.
Note that you can combine both the targetView attribute and the normal hardcoded targetView options within a view. The attribute will control the default or left click navigetion, but the user will still have the option to right-click and select from the array defined in the options. Also note as there is only one targetView attribute per dimension if you don’t want that navigation to apply in other screens then you need to add “targetViewAttributeOverride”: false to the advanced options json of the subview or widget.
Just be aware (as this isn’t documented anywhere!) that the syntax of the app ID stored in the targetView attribute is different from what is needed in the standard advanced options json.
targetView attribute syntax:
Versus the standard advanced options json syntax: