Hello, first of all I want to clarify i have not an issue with the product, what I'm trying to do is to support a very specific scenario.
The scenario is the following: a read-only grid, showing data from a query to a large remote database table, on a client with good networking speed and high latency.
The requirement is that the user will have to work on a responsive local ui despite the high latency, so virtualization and data paging is used.
The current implementation uses a virtual grid associated to a local cache that keeps in memory a small page of record, for example 500.
At the very beginning the cache gets the record count to the server and pass this number as the RowCount to the grid.
As the grid raise the event OnCellValueNeeded to get the row number 100,772 , the cache know that record 100,772 is out of its local bounds and will require to the server the records between (for example) 100,722 to 101,221. That's given the high latency requires little less a second, it is not a terrible issue, but... it is noticeable and somebody have the feeling of a not responsive UI, cause the server request is synchronous thus freezing the UI.
I'm not a psychologist but i guess the bad feeling is caused by the fact the user did not requested the "get a new page operation", if i gave the user the "paging" control the user would have a good feeling, but I can't.
I would like to exploit the human sensation about a smoot and responsive UI by running the query async, having the grid showing the value "#loading" on cells and then once the background worker finished loading the cache ask the grid, if the requested cell still is visible, to refresh the cell.
So now i described the scenario, what i would like to ask community is if it is possible and how to :
* have the oncellvalueneeded immediately return a dummy value for any datatype (including datetime cells) and launch the background worker to retrieve the data.
* once the data is ready, ask the grid to refresh the {visible cells} intersecated with the {retrieved from the database data}
Best regards
Andrea