The Syncfusion native Blazor components library offers 70+ UI and Data Viz web controls that are responsive and lightweight for building modern web apps.
.NET PDF framework is a high-performance and comprehensive library used to create, read, merge, split, secure, edit, view, and review PDF files in C#/VB.NET.
I have to do an application that contains a grid control. I need to respect these requirements : loading of 100 000 rows X 40 cols in 2 seconds(each colums can have different cells type like combobox, radio button, etc.), multicolumns sort, drag and drop, tooltips, etc..
Can you tell me which grid can respect those requirements?
Can you tell me which grid have which feature(example: gridcontrol can do a virtual grid and not the gridgroupingcontrol etc.)
Where can I find a table that contains which grid(GridControl,GridDataBoundControl and gridGroupingControl) support which features?
HAhaneefm Syncfusion Team April 24, 2008 03:47 PM UTC
Hi Fred,
We strongly recommend you to use the GridGroupingControl, which has the advanced bulit-in functionality for showing the nested tables/groups and also support multicolumns sort, drag and drop, CellTooltips.
There are some standard optimizations that need to be set, which will let you speed up the grouping engine and improve performance of the GroupingGrid, when many rows are present. Please try the following optimization settings for your GridGroupingControl.
void OptimizeGridSettings(GridGroupingControl grid) { grid.CounterLogic = EngineCounters.YAmount; grid.AllowedOptimizations = EngineOptimizations.DisableCounters | EngineOptimizations.RecordsAsDisplayElements; grid.UseDefaultsForFasterDrawing = true; // GDI interop drawing, FirstNRecords Summaries grid.InvalidateAllWhenListChanged = false; // only paint modified cells grid.InsertRemoveBehavior = GridListChangedInsertRemoveBehavior.ScrollWithImmediateUpdate; grid.UpdateDisplayFrequency = 50; // update every number of ms (speciy 0 if Update should occur manually, 1 if immediately) //grid.TableControl.EnableDoubleBufferSurface(); // reduce flickering
// Instruct grouping control not to access datasource through // CurrencyManager API and instead access list diretly. When set to // false you wil howver loose support for built-in CurrencyManager // synchronization. grid.BindToCurrencyManager = false; }
Take a look at the performance based samples in GridGroupingControl from the shipped browser samples \Syncfusion\EssentialStudio\6.1.0.34\Windows\Grid.Grouping.Windows\Samples\2.0\PerformanceSamples\
Also you could try GridGroupingGrid.Engine.AllowCacheStyles and Enable this flag if you want GridRecordRow and GridCaptionRow elements to keep a cache with style information for individual cells and reduce the number of QueryCellStyleInfo calls being raised for these cells.
Other things you could look at is overriding Table.ShouldCacheRecordData.
Here is how the base class version looks like:
/// /// Method is called when the table tries to determine whether a record''''''''s underlying data row can be cached /// within objects. /// /// True if record''''''''s underlying data row can be cached /// within objects; False otherwise. protected virtual bool ShouldCacheRecordData() // called when SourceList is changed { return ((SourceList) is IGroupingList) && ((IGroupingList) SourceList).AllowItemReference || SourceList is System.Data.DataView; }
Another setting is Engine.AllowSwapDataViewWithDataTableList. It Gets / sets if the engine can wrap access to a DataTable with a which provides optimized access to the rows of the datatable. Engine will access a DataTable through this wrapper class instead of accessing records through the DataTable.DefaultView to increase performance when adding, removing, and changing records when Engine.AllowSwapDataViewWithDataTableList is enabled. Default is False. --- but that should normally not affect scrolling.