Certain features for data-bound grid controls are a given and should be available in any grid. Like rows and columns (other layouts are possible in many) and checkboxes for boolean values with text representation for other values. But many grid controls offer a cacophony of features that may not be applicable to all of the use cases. Some of these are:
- Multi-level data, with master rows that can be expanded to reveal detail rows. Potentially, these detail rows can have different columns and potentially these detail rows can be expanded to show additional detail levels.
- Drag-and drop grouping.
- Column reordering.
- Theming/skinning.
- Customisable row layout, where rows don't need to be composed of a line of cells but can appear like an entry card or something similar.
- Editing in general - I often use custom-built editors instead and use the grid for display only.
- Customisable editors that can be replaced with pretty much anything the application developer can think of.
- In-grid filtering, sorting or any kind of manipulation that could also be done on the data independently of the grid.
- Footers with automatic summary of given fields.
- Extensive control over formatting.
I know that most of these features are useful to have in some circumstances, but which of these (or any other features you can think of) do you think any modern data-bound grid should be able to do to be useful in your applications?