Now that I've figured out how to use virtual mode, scrolling by mouse works okay, but there are significant issues with the keyboard handling.
Everything is fine while when cursoring inside the visible rows, but when you cursor down, it scrolls down two rows and loses focus, requiring you to click inside the grid again if you want to use the cursor keys.
Cursoring up is worse - that loses focus and jumps to the very top row in the data.
I would have thought this was just my problem, but the Scroll-On-Demand (AJAX) example on the Infragistics web site** exhibits exactly this behavior. If you switch "Current Xml scroll mode" to Virtual and try to scroll with the cursor keys, you will see this behavior both on IE 7 and Firefox 3.
Should I be submitting this as a bug report somehow?
Regards,
-- Ritchie Annand
(**: http://samples.infragistics.com/2008.2/webfeaturebrowser/contents.aspx?showCode=True&t=WebGrid/XmlScrolling/WebForm1.aspx~srcview.aspx?path=../webfeaturebrowservb/WebGrid/XmlScrolling/WebForm1.src~srcview.aspx?path=WebGrid/XmlScrolling/WebForm1.src)
Now that I've taken a closer look at the source code, it looks like there really is no case for handling the virtual mode when it comes to keyboard scrolling. Any incident sort of behavior on cursor down looks like it's happening because of scroll bar handling, and cursor up does a scroll-to-top when it runs out of rows, hence the starting at the first row. There is certainly no code for activating a cell again.
We're going to take a run at intercepting the keyboard handling and trying to handle the scrolling cases directly, though I am having some issues already trying to make sure that the scroll events *don't* fire (ended up having to slap a "keyboardScrolled" value on the grid, but more importantly,how to properly control that scroll bar and where the top of the visible fields (since in virtual mode the rows should start at the top of the visible area, not the top of the scrollable area). _alignDivs *almost* does the right thing...
Time to muddle through some more...
*sigh*
Cheers,
-- Ritchie