Procedures to reproduce the case:

The correct result should be that scrolling should only stop at the last row. If you use the mouse or the scrollbar, you can see that there are rows beneath.

Buttons to test resetting subRows:

A Grid with locking columns but only one subrow

A Grid with complex columns including locking columns and subrows

Buttons to test resetting columnSets:

(set 3 tests 3 columnsets, to test proper cleanup of scrollers when going back to 2)

Same grid, instantiated programmatically from HTML table

Column 1 Column 2 Column 1 Column 4
Column 3 Column 5

Another complex grid instantiated from an HTML table

rowspan=3 colspan=2 rowspan=2 colspan=2 rowspan=2
rowspan=2 Column 3 rowspan=2 Column 5
Column 2 Column 3 colspan=2

Same as previous two tables, instantiated declaratively

Column 1 Column 2 Column 1 Column 4
Column 3 Column 5
rowspan=3 colspan=2 rowspan=2 colSpan:2 rowSpan:2
rowspan=2 Column 3 rowspan=2 Column 5
Column 2 Column 3 colspan=2