We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. Image for the cookie policy date
close icon

Differences between each grid control.

Hi,

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.)


Thank you,

Fred


2 Replies

FR Fred April 18, 2008 02:04 PM UTC

Where can I find a table that contains which grid(GridControl,GridDataBoundControl and gridGroupingControl) support which features?




HA haneefm 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.


Best regards,
Haneef


Loader.
Live Chat Icon For mobile
Up arrow icon