RadGrid
We redesigned both the UI and the data layer and added several new features:
New data layer - it is generic and we use the same data layer in RadListControl and RadDropDownList. The new data layer is faster and uses less memory.
Virtualized columns - with the new column virtualization RadGridView can bind any number of columns without performance lost. This makes possible various spreadsheet scenarios.
Split grid - the new grid root element supports multiple custom views and split view can be applied by setting one property.
Pinned items - the pinned position of all columns and rows (including the system rows) can be customized. Columns can pin at left or right and rows at top or bottom.
Styling cells - the visual appearance of any cell can be changed by using the Style property, without using an event.
Rows reorder - when RadGridView is used in unbound mode, rows can be reordered by using the mouse.
Drag and drop - with the new build-in drag and drop service it is easy to drag & drop rows between two grids.
Grouping by multiple columns - the new group panel supports grouping by more than one column.
Self referencing - it is easy to present tree-like data with the new self referencing feature by setting just one relation.
IDataError support - RadGridView will reflect automatically all errors indicated by this interface. Another option is setting the cell/row ErrorText property.
Data Conversion - When using business objects, RadGridView will recognize automatically any attached type converter attribute and will use it to convert the data. This enables adopting any incompatible type.
We tried to keep breaking changes at minimum; nevertheless we could not avoid some. Consider the following list:
- Because of the new element hierarchy, your application may not compile if you used the “Element hierarchy editor” or accessed the element tree directly.
- Row cells should be accessed by using the VisualCells property instead of using the Children collection directly.
- The CellElement and VisualElement properties of GridViewCellInfo and GridViewRowInfo respectively are removed. You should use RadGridView.GridElement.GetCellElement/GetRowElement methods.
This is a detailed list of all major changes in the public API:
RadGridView
- Removed: GroupDepth property, it is no longer needed.
- Removed: Obsolete method UpdateGroupPanel.
- Removed: GridScroller property, you should use GridElement.VScrollBar property.
- Removed: SetCurrentRow method, you should use CurrentRow property.
- Removed: OnChildRowsNeeded method, it is no longer needed.
GridViewTemplate
- Removed: obsolete method UpdateSummaries, summaries are updated automatically.
- Removed: obsolete method UpdateGroupPanel, group panel is updated automatically.
- Removed: obsolete property SummaryDisplayStyle, use SummaryRowsTop and SummaryRowsBottom collections.
- Removed: obsolete property RetrieveNullAsDBNull, use GridViewColumn.DataSourceNullValue property.
- Removed: obsolete property OwnerGrid, use Owner property.
- Removed: obsolete property ColumnAutoWidth, use AutoSizeColumnsMode property and BestFit method.
- Removed: obsolete property AllowRowSelection, use properties controlling the selection behavior.
- Removed: ColumnWidthChanging/Changed events and methods, use corresponding RadGridView events.
- Removed: ColumnIndexChanging/Changed events and methods, use Columns.CollectionChanged event.
- Removed: AddGroupByExpression, AddToGroupExpressions, ClearGroupByExpressions, RemoveGroupExpressions and SwitchGroupExpressions methods, use GroupByExpressions property methods.
- Removed:
GridViewInfo
- Removed: obsolete method GetVisibleRow, use Rows[index].
- Removed: obsolete method GetVisibleRowIndex, use Rows.IndexOf method.
- Removed: GridViewElement property, use RootGridElement.FindView method.
- Removed: RowHeightChanged and RowHeightChanging methods, use RadGridView events.
- Removed: RootGroup property, use ViewTemplate property.
- Removed: CurrentGroup property, use GridViewRowInfo.Parent property.
GridViewRowInfo
- Removed: obsolete property ActualHeight, use the Height property.
- Removed: obsolete property GridViewInfo, use the ViewInfo property.
- Removed: VisualElement property, use GridElement.GetRowElement method.
GridViewGroupRowInfo
- Removed: SetGroupExpandedWithAnimation method, in this beta we do not support grouping animations.
GridViewDataRowInfo
- Removed: ChildRow property. Currently when using hierarchy, RadGridView produces GridViewHierarchyRowInfo instances which inherit from GridViewDataRowInfo and contain this property.
- Removed: GroupLevel property. This property can be accessed in GridViewHierarchyRowInfo.
GridViewColumn
- Removed: WidthPercentage property, this property was used internally in old grid versions.
- Removed: Invalidate method, use GridElement.Update methods instead.
- Removed: CellDefinition property, this property was used internally in old grid versions.
GridViewDataColumn
- Removed: obsolete property AllowDragToGroup, use the template property.
- Removed: obsolete property DataField, use the FieldName property.
- Removed: obsolete property DataTextFormatString, use the FormatString property.
- Removed: obsolete property DataTypeIsSet.
- Removed: internally used methods IsBindableType and IsBoundToFieldName.
GridTableElement
- Removed: obsolete properties DrawHorizontalOuterBorder and DrawVerticalOuterBorder
- Removed: HeaderElement, FooterElement and TableBodyElement properties, these elements are no longer part of the element hierarchy.
- Removed: GetRowStyle, GetStyleByTargetElement and SetStyleByTargetElement methods, use the Style property.
- Removed: various update methods: InvalidateColumn, InvalidateColumnWidths, UpdateColumns, UpdateCurrentColumn, and UpdateCurrentPosition. All updates are now automatic. You can use the Update and UpdateView methods to explicitly update GridTableElement.
- Removed: RowsEnumerator property, create GridTraverser instance instead.
GridRowElement
- Removed: UpdateColumns, UpdateStyle and CreateCells methods.
- Removed: GetPinnedState method, use RowInfo.PinPosition property.
- Removed: ViewDefinition property, use ViewTemplate.ViewDefinition property.
- Removed: BodyElement property, it is no longer part of the element hierarchy.
GridCellElement
- Removed: obsolete property IsReadOnly, use GridViewColumn.ReadOnly property.
- Removed: BodyElement property, it is no longer part of the element hierarchy.
BaseGridBehavior
- Removed: all methods that handle specific keys. Use ProcessKey method instead.
BaseGridNavigator
- Changed: excluded key specific arguments from row and column selection methods.