Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 3.0.1
-
Component/s: ACE-Components
-
Labels:None
-
Environment:IF 3.x
-
Assignee Priority:P1
-
Workaround Exists:Yes
-
Workaround Description:The redesign to meet scrolling requirements is to shorten/remove rowspan on the bottom row of header columns, and to insert an empty column instead, which will preserve the alignment of the <th> in the head with the <td>'s in the body.
Description
A datatable containing multiple row header that has a row with a cell that spans multiple rows, including spanning the bottom row of the table, causes sizing errors in scrollable datatable mode.
This is partially because of a scroll bar sizing issue.
However this is also much more importantly a breach of a general contract that must be followed when using multiple row headers with the scrollable mode: that each column in the data table has a corresponding column in the bottom row of the multirow header configuration. By row spanning, the bottom header row is missing a <th> that must correspond to a <td> in the body.
The reason for this restriction is that an association is made between the header and body columns so we can size the body columns according to the associated header sizes we record before we "move" the header outside the scrollable area (destroying the previous body column sizes).
To make the body size order and header size order independent would require a second phase of evaluating and recording sizes before the header move, recording the body sizes in an order that may be different than the header sizes. This would make the IE8 and lower cases where evaluating sizing has been inefficient even more so.
Or it could be accomplished by additional logic to very intelligently map the location of each <tr> and determine which is truly associate with which body <td>, but this would be expensive and potential nest for errors.
This is partially because of a scroll bar sizing issue.
However this is also much more importantly a breach of a general contract that must be followed when using multiple row headers with the scrollable mode: that each column in the data table has a corresponding column in the bottom row of the multirow header configuration. By row spanning, the bottom header row is missing a <th> that must correspond to a <td> in the body.
The reason for this restriction is that an association is made between the header and body columns so we can size the body columns according to the associated header sizes we record before we "move" the header outside the scrollable area (destroying the previous body column sizes).
To make the body size order and header size order independent would require a second phase of evaluating and recording sizes before the header move, recording the body sizes in an order that may be different than the header sizes. This would make the IE8 and lower cases where evaluating sizing has been inefficient even more so.
Or it could be accomplished by additional logic to very intelligently map the location of each <tr> and determine which is truly associate with which body <td>, but this would be expensive and potential nest for errors.
Revision #29540
Committed by nils.lundquist
Moments ago
ICE-8104- Redesigned scrollable table to independently size header and body.Enabled support for colspan and rowspan sizing. The dataTableMultiRowHeader example demonstrates this new functionality.