iGrid.NET vs. DataGridView
Many people ask us why they need our grid if the .NET Framework 2.0 already contains a similar one called DataGridView. This brief comparison tries to answer the question why DataGridView is a worse choice than our grid control in many practical tasks.
Flexibility and simplicity vs. built-in data binding
First of all I should say that DataGridView is a data-bound grid control while in our control you should write some additional code if you need data binding. This is the main difference, but it is one of the main ideas of iGrid.NET – we wanted to create a lightweight, easy-to-use and fast grid control suitable to create tabular interfaces which are not data–bound first of all. We wanted to create an elegant and editable control similar to ListView. Many grid developers on the market is trying to create powerful data-bound grid controls – they add to their products as many features as they can or see in other products on the market, but this extra functionality is not needed in many cases, and moreover, grid controls become very complicated due to this additional functionality.
By the way, iGrid.NET provides you with so many methods and events you can use to tune the behavior of the control that you can implement practically any data-bound interface you need; in DataGridView you stick to the standard predefined behavior and cannot change it a lot.
Cells with different characteristics at any place - do it easily
Our control is oriented on the tasks in which you can store values of different types in the same column (or you can also have cells of different types, i.e. combo cells or check box cells in the same column). I do not say that it is not possible in the MS grid, but it is much harder to do that in it than in iGrid. In iGrid you simply access the cell matrix through the Cells object collection and set the required properties like in the following code:
iGrid1.Cells[2, 5].Value = 123;
iGrid1.Cells[3, 0].Type = iGCellType.Combo;
Can it be so simple in the MS grid? The answer is "no" because of their deep object organization.
Built-in grouping and tree structure
DataGridView does not support interactive/programming grouping of rows. In iGrid you can group rows automatically using the group box or from code, or you can create group rows of two types at any position manually. The ability to work with hierarchical data on which group rows are based is also used in another feature – in iGrid.NET you can create a tree view control with several columns, you simply make one column a tree.
iGrid.NET is fast
DataGridView is enough slow. You can find many discussions devoted to this fact in the Internet, here is the first one we found: http://weblogs.asp.net/fbouma/archive/2005/10/29/428848.aspx
When we were designing the iGrid control, we kept in mind the problem of performance, and we specially optimize drawing/sorting/memory management code to get the highest possible performance.
Full support of printing and print-preview
You cannot print DataGridView using a standard control or class of the .NET Framework. iGrid.NET has a special add-on component called PrintManager you can use for that. Yes, you may say that there are some ready-to-use code snippets in the Internet you can use to print DataGridView, but as we know, none of them supports all the features you can use in DataGridView. Our PrintManager fully supports all the features you can use in iGrid.NET, and moreover, you can print the contents of the grid using numerous options.
Tons of small but useful features
We have already implemented in iGrid.NET many enhancements which make the life of a user better and allow to operate with data easier. Among this features the ability to sort the grid by several columns simultaneously, search-as-type functionality when you can find the required cell in a column by typing some characters from this cell's text, auto-complete lists which will help to enter strings faster.
You as a developer can adjust the constituent parts of iGrid to suite particular needs - for instance, the iGrid.NET scroll bars can be semi-transparent to increase the amount of visible information and can contain additional custom buttons which perform useful tasks directly in the grid interface without encumbering the user interface in the form where the grid is placed:
|