Skip to main content

Blocking the row navigation in a table, tree and treeTable on error

Problem :  Framework is letting the business user to navigate to different row in a table(tree or treeTable) even when the currently selected row has some validation error. As there are validation error binding layer does not respond to the row selection and the UI appears to be not synchronized with model in such cases.

Solution : The release has introduced a anew flag "blockRowNavigationOnError" for af:table, af:tree anf af:treeTable.
<af:table blockRowNavigationOnError="always".../> 

Copying the description of this flag from the tag documentation.

Property                                                   Valid Values
blockRowNavigationOnError                always, never, auto

Whether we want to block row navigation in case of validation failure.
This is when you select a row and do some editing inside the table or in a related form, and this editing causes some validation failures. At this time, if you click on a different row in table, we want to block you from moving to the new row.
possible values are: always, never and auto. default value is auto.
  • always means we block the row navigation
  • never means we don't block and let the row navigation happen
  • auto means the framework will make the decision


Bryce Edwards said…
I struggled for hours trying to add a simple innodb table with a particular name without any foreign keys removing .idb files, I realised that my InnoDB data directory file must be corrupted by having a reference to the table even though it no longer existed so I stopped MySQL and removed. To get more info please visit

Popular posts from this blog

How to set Bind Variable Values at runtime ?

In this post I'm sharing a couple of approaches for programmatically setting bind variables values at run time. This post is an attempt to explain 'When to use what ?'[ In case if you are familiar with 'Bind Variables' in ADF BC, please refer Section 5.10, Working with Bind Variables in Fusion Developer's Guide ]

1. Set the Bind Variable value using RowSet::setNamedWhereClauseParam(...)

You can use use the setNamedWhereClauseParam(...) method on the ViewObject interface (which extends oracle.jbo.RowSet) to set the value for bind variables. Please note this sets the value on default RowSet. In other words, this doesn't have any effect on the secondary RowSets that you/system generates.
ViewObject vo = am.findViewObject("EmployeesView1"); vo.setNamedWhereClauseParam("bindVarDeptId", new Number(10)); vo.executeQuery();
2. Set the Bind Variable value using ViewObject's VariableValueManager::setVariableValue(...)

VariableValueManager Ma…

Happy New Year 2018 !

We can't go back and change the beginning, but we always can start where we are and change the ending. Believe in yourself and you will be unstoppable!

Wishing you and your family a very happy new year 2018 !!!