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
Hi, I am having similar problem, with a grid having 25 columns and about 100 rows. I have make following settings
<igGrid:XamWebGrid.RowSelectorSettings> <igGrid:RowSelectorSettings Visibility="Visible" EnableRowNumbering="True" > </igGrid:RowSelectorSettings> </igGrid:XamWebGrid.RowSelectorSettings> <igGrid:XamWebGrid.SelectionSettings> <igGrid:SelectionSettings ColumnSelection="Multiple" RowSelection="Multiple" ></igGrid:SelectionSettings></igGrid:XamWebGrid.SelectionSettings><igGrid:XamWebGrid.SortingSettings> <igGrid:SortingSettings AllowSorting="False"></igGrid:SortingSettings></igGrid:XamWebGrid.SortingSettings>
<igGrid:XamWebGrid.EditingSettings> <igGrid:EditingSettings AllowEditing="Cell" IsMouseActionEditingEnabled="DoubleClick" IsEnterKeyEditingEnabled="True" IsF2EditingEnabled="True" IsOnCellActiveEditingEnabled="False" /></igGrid:XamWebGrid.EditingSettings>
I am facing following problems:1. Overall application load time bit high about 20 seconds.2. Overall application response time is very slow.3. Keyboard typing in a cell is very slow. 4. Grid Scroll is very slow.
Furthermore, this issue is basically related with number of columns instead of number of rows. I've tested same program with 5 Columns and 10000 Rows without paging and it is working fine. No Keyboard event delays nor application response problem and significant change (better) load time but the same program causes problem with 30 rows with 25 columns.
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.
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...
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.
Alex, I can only point you to the earlier comment in which I observe that the delay appears to be related to the number of rows. I think its the total number of possible cells in the display area but I cannot see a measureable difference when changing the number of columns visible in the display area.
The lag when scrolling also seems to be related to the number of rows visible in the display area.
I imagine the issue is the number of elements in the visual tree. Whe have a map-type application which we now display by generating and displaying a bitmap because performance is not acceptable when trying to use elements. And this type of application exhibits the same kind of problem.
Just to be clear. The control that Alex and croesusdev are refering to is the WPF XamDataGrid, not the SL xamWebGrid.
And you are correct. There will be a direct performance link between the number of cells' that are visible. For everything not in view is virtualized, meaning we don't hook up controls to those cells and rows. And when they do come in view, we recycle the controls that were previously in view, to keep memory low and speed up.
And when you are scrolling with a large grid, there will be some lag in scrolling. We are constantly working on increasing the speed here, however, we are limited to what the SL can actually handle.
One thing you may try is our Deferred scrolling feature, which allows you do display a DataTemplate of the current top row while scrolling, which will give you immediate feedback while scrolling, but lead to no lag between the cursor and scrollbar thumb.
-SteveZ
Hi Stephen,
I am not very much sure but I faced slow application response with SilverLight Standard DataGrid too. Is this some problem due to SilverLight architecture limitation like number of controls in Controls Tree or there is some other bug. Can you please elaborate?
If it is related with number of controls in Controls Tree then why it works fine with thousands of rows with 4 or 5 columns (I've seen your application demo with million rows but with paging). I have tested same solution without paging against 100 rows with 25 colunms (2,500 cells) and 10,000 rows with 5 colunms (50,000 cells) and observered that 25 columns have performance issue but 5 columns solution works fine.
Regards,
Imran