I have an application using xamWebGrid and in the demo configuration it displays just 357 rows. The data are instances of a simple CLR object of 11 properties of value types: datetime (3), enum (2), string (2), int (2), bool (2).
The empty grid is displayed quickly but the time from setting the data source to displaying the data is ~5 seconds. Initially this is quite confusing for users who are unaware they should wait so press F5 to refresh the page. We've put in a "Loading..." message on screen to inform the user but there does not seem to be an event fired by the xamWebGird once the data is displayed. Without such an event we don't know when to remove the loading message.
So two questions: why the delay? There is not a lot of data. Secondly, is there an event that will fire once the display is presented?
Thanks
Bill Seddon
Hello,
The mentioned case and the related development issue regarding slow performance were created to find a way to improve the performance of the XamDataGrid when expanding a record. However, the reported scenario had a large number of fields (Columns) which results in inserting a great number of elements into the visual tree of the application, which is the main culprit in this issue.
So far, we were able to make some improvements on this matter. We have kept this issue opened in order to be able to go back to it, revisit it and try to find other ways for improvement.
We would appreciate if you can share any additional information on the scenario/ your environment that might be helpful.
Hi,
So, i'm not sure why you're seeing such a long delay in the loading of the xamWebGrid. Performance is always a number one priority for us. And we're constantly making improvements to make it faster. So, if you have a sample that shows off your issue, can you attach to this thread, so that i can see what's going on?
As for your other question. We don't currently have an event that fires when the grid is finished updating.
I suppose you could use the xamWebGrid's LayoutUpdated event. You can hook up the event, before you attach your itemSource, and unhook the first time it's called after the LayoutUpdated event has fired.
Hope this helps,
-SteveZ
Hi bseddon,
I don't have any solution to your problems, but I can tell you that you're not the only one expecting better performances. We also have major performance issue when a lot of columns are displayed in the grid.
Infragistics agreed to open a support case for the xamDataGrid 2-3 months ago ( CAS-34293-471OP8). That case refers to bad performance when expanding a record. This scenario illustrates very well that it takes too much time to display the data.
There is nothing you can do to speed it up on your side...
Back to my initial question was about an event which fires *after* the display is finally presented. I started this thread not really to complain about performance but to find a way to be able to reliably remove a "Loading..." message when the display is finally painted.
Guys you are missing the point. The 'whole' data is 300 rows by 11 columns - lets say 4000 cells (or less in Imran Zia's case). *Any* grid (including MS's because I've used it) does not pause for 5 seconds after the data source is set and before the data is displayed. Let's focus on the XamWebGrid and not try to be distracted by what may or may not be happening with some other grid.
But I'll another datapoint from further testing in response to these posts: I've set column widths and row heights to a fixed size and fixed the size of the control to 800x800 but it makes no difference. Also, the delay does not appear to be affected by the volume of data - 300 or 1500 records and the delay period is the same.
It *does* appear to be affected by the number of rows or columns in the available display area. That is, the number of cells. 34 rows x 11 coumns = ~ 5 seconds. 7 rows = 2 seconds.