There are bugs and unintended interactions between horizontal and (virtual) vertical scrolling when both are enabled (along with the pager). The problems can be seen when the displayed data is such that the number of rows set by the PageSize of SettingsPager does not fill or overflow the VerticalSrollableHeight.
In such case, moving the horizontal scrollbar causes vertical scrolling (downwards) to other records. With the horizontal scrollbar positioned away from the extreme left, vertical scrolling can also cause "jumping" to unintended rows after the initial (correct) ones are displayed. Also, using the down arrow on the vertical scrollbar or clicking the space between that arrow and the slider can cause the display to jump over the next page results (sometimes by one page, sometimes by more).
The behaviors can be seen in the attached project. It includes a database with initial rows containing data that is wide enough to cause wrapping of cells that pushes the display past the VerticalScrollableHeight. Later rows contain narrow data that allows rows to be displayed in a single line, causing the displayed data to take up less than the VerticalScrollableHeight. Two pages are included. They differ only in whether columns are defined or auto generated; both show the same problems.
Steps to Reproduce:
1. Display either testGridScrolling1.aspx or testGridScrolling2.aspx, displaying records 1-10.
2. Move horizontal scrollbar to right (not necessary to reproduce bugs--just to show working normally with this data).
3. Move horizontal scrollbar to extreme left (not necessary to reproduce bugs--just to show working normally with this data).
4. Either click the down arrow on the vertical scrollbar 7 times or click the space between that arrow and the slider in order to display the next page of results (records 11-20).
5. Move the horizontal scrollbar to right to display fields not shown.
6. Move the horizontal scrollbar to the right (wait for display to stop changing pages), then move the vertical scrollbar. (Results are not always the same, so repeat and observe.)
Actual Results:
1. Records 1-10 are displayed (as expected).
2. Fields to right are displayed without change of page (as expected).
3. Initial fields on same page are again displayed (as expected).
4. Records 31-40 are displayed.
5. After displaying fields to the right, page changes to display different records (between 1 and 3 pages down).
6. After inital page is displayed, new pages are loaded and displayed.
Expected Results:
1. Records 1-10 displayed.
2. Fields to right are displayed without change of page.
3. Initial fields on same page are again displayed.
4. Records 21-30 should be displayed.
5. Fields to right should display, but page should not change.
6. Page should not change after initial page is displayed.