The data is passed to the grid via the constructor and can also be accessed using the setData(data) and getData() methods. Data itself can be either an array-like object with a length property and an indexer (data[index]) or a custom data provider implementing the following interface:
getLength()- returns the number of data items in the setgetItem(index)- returns the item at a given indexgetItemMetadata(index)- returns the metadata for the item at a given index (optional)
getItemMetadata provides a powerful way of specifying additional information about a data item that let the grid customize the appearance and handling of a particular data item. The method should return null if the item requires no special handling, or an object in the following general format:
{
// properties describing metadata related to the item (i.e. grid row) itself
"<property>": value,
"<property>": value,
// properties describing metadata related to individual columns
"columns": {
"<column index>": {
// metadata indexed by column index
"<property>": value,
"<property>": value
},
"<column id>": {
// metadata indexed by column id
"<property>": value,
"<property>": value
}
}
}
cssClasses(string) - One or more (space-separated) CSS classes to be added to the entire row.focusable(boolean) - Whether or not any cells in the row can be set as "active".selectable(boolean) - Whether or not a row or any cells in it can be selected.
focusable(boolean) - Whether or not a cell can be set as "active".selectable(boolean) - Whether or not a cell can be selected.formatter(Function) - A custom cell formatter.editor(Function) - A custom cell editor.colspan(number|string) - Number of columns this cell will span. Can also contain "*" to indicate that the cell should span the rest of the row.
When looking up a property, the grid checks in the following order:
- Row-level item metadata.
- Column-level item metadata by column id.
- Column-level item metadata by column index.
- Column definition.
- Grid options.
- Grid defaults.
See colspan example.