Your Privacy Matters: We use our own and third-party cookies to improve your experience on our website. By continuing to use the website we understand that you accept their use. Cookie Policy
325
RowSelectionChanged Returns Null?
posted

I have an interesting issue here.

I am intercepting the auto postback flag for RowSelectionChanged for a WebDataGrid with Virtual Scrolling enabled, EnableAjax false (require notification of autopostback flags), and EnableDataViewState false.  The Grid loads data as necessary once it scrolls far enough.

If I select a row on a WDG the RowSelectionChanged argument returns a row object.  No problem there.  Where the problem occurs is when the grid needs to load more data, and the selected row has scrolled out of view, selecting another row returns a RowSelectionChanged event indicating the right number of selected rows, but each row object is null!  Additionally, there are other strange issues, such as the scroll bar not working (although the mouse wheel does), and the control becoming unresponsive to mouse clicks (until what appears to be the grid 'catching up' which can take many seconds).

The reason why EnableAjax was turned off is that, by specification, I cannot utilize the existing editing features of the grid and must present a panel for editing consisting of standard controls.  Thus, I need server side access to the row selection changed event.  I could write the fill portion with client side code, however, I'd prefer to perform this on the server side.

I have gotten around the issue temporarily by setting EnableDataViewState to false, however, this effectively loads the entire set of data, regardless of the virtual scrolling setting, which I'd like to avoid.

I feel like I'm doing something extraordinarily unrecommended here, so my question(s) are...

Can you get virtual scrolling/on-demand loading to work properly when Ajax has been disabled?  And by properly, I mean, selection events propagating to the server side with correct data, and free of strange side effects on the client?  If so, how?

I'm seriously hoping that this is just a settings issue.