Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: EE-3.3.0.GA_P02, EE-4.0.0.GA, EE-3.3.0.GA_P03
-
Fix Version/s: 4.1, EE-3.3.0.GA_P04
-
Component/s: ACE-Components
-
Labels:None
-
Environment:All
-
Assignee Priority:P1
-
Support Case References:Support Case #13541 - https://icesoft.my.salesforce.com/5007000001MOGwP
Description
When an ace:dataTable is nested three deep in a multi-nested dataTable, the panelExpansion for this row is not activated. Clicking the expansion button has no effect nor does it show any errors.
r45982: fix in the iteration logic to identify if the expansion/contraction request is for the current table and not for nested tables; added a way to identify if the current table is nested, and in such case use appropriate 'execute' values.
The main problem was an error in the logic for iterating over child components. The logic dictated that if it was a panel expansion request, child components shouldn't be executed. The problem was that there was no distinction between panel expansion requests, whether they were for the outer table or for the nested tables. So, when there was a panel expansion request for a nested table, the inner tables never got to execute, because of this logic. This was fixed by adding a way to distinguish between panel expansion requests of this table or of nested tables.
Another issue was that, even with the fix above, the nested tables never got to execute by simply specifying their client IDs in the 'execute' parameter of the request. This happened with any UIData component, standard or ACE. This was fixed by adding a way to identify if this table is nested, and, in such case, use @form for the 'execute' parameter. Also, a note was added to the wiki and to the TLD documentation to either use '@form' or '@all' for the 'execute' value of the ace:ajax tag, when using such tag for the 'expand' and 'contract' events.