Events

This section describes events fired by this widget.

See Also

adaptiveDetailRowPreparing

Raised before an adaptive detail row is rendered.

Event Handler Argument:
Information about the event.
Object structure:
component: Object
The widget instance.
element: jQuery
The widget's container.
model: Object
The model data. Available only if you use Knockout.
formOptions: Object
The options of the Form widget.

Main article: onAdaptiveDetailRowPreparing

See Also

cellClick

Fires when a user clicks a grid cell.

Event Handler Argument:
Information about the event.
Object structure:
component: Object
The widget instance.
element: jQuery
The widget's container.
model: Object
Data that is available for binding against the element. Available only in the Knockout approach.
jQueryEvent: jQuery.Event
The jQuery event.
data: Object
The object of the data source represented by the row to which the clicked cell belongs.
key: any
The key of the row. If a field providing keys is not specified in a data source, the whole data object is considered the key.
value: any
The value of the clicked cell as it is specified in a data source.
displayValue: String
The value displayed by the clicked cell. Differs from the value field only when the column to which the clicked cell belongs uses lookup.
text: String
The value of the clicked cell in a string format. Use this field to get the value with applied format.
columnIndex: Number
The current index of the column to which the clicked cell belongs. For more information on how this index is calculated, refer to the Calculating the Column Index topic.
column: Object
The settings of the column to which the clicked cell belongs.
rowIndex: Number
The index of the row to which the clicked cell belongs. When you have several pages in a grid, grid rows are indexed beginning with 0 on each page. Note that group cells are also counted as rows and, thus, have row indexes. For further information about row indexes, see the Grid Rows topic.
rowType: String
The type of the row to which the clicked cell belongs. This field equals 'data' for ordinary rows or 'group' for group rows. Use this field to distinguish rows by type.
cellElement: jQuery
The element of the clicked cell.
The settings of the row to which the clicked cell belongs.

Instead, you can use the onCellClick option to handle the event.

When implementing a handling function for this event, use the object passed to this function as its parameter. Among the fields of this object, you can find data relating to the clicked cell.

In addition, you can perform some actions when a user clicks a row. For this purpose, handle the rowClick event.

NOTE
cellClick fires before rowClick.
See Also

cellHoverChanged

Fires when the hover state of a cell is changed.

Event Handler Argument:
Information about the event.
Object structure:
component: Object
The widget instance.
element: jQuery
The widget's container.
model: Object
Data that is available for binding against the element. Available only in the Knockout approach.
eventType: String
Identifies whether the cell has been hovered over or hovered out. This field equals either "mouseover" or "mouseout".
data: Object
The object of the data source presented by the row to which the current cell belongs.
key: any
The key of the row. If a field providing keys is not specified in a data source, the whole data object is considered the key.
value: any
The value of the current cell as it is specified in the data source.
text: String
The value of the current cell in a string format. Use this field to get the value with an applied format.
displayValue: String
The value displayed by the current cell. Differs from the value field only when the column to which the current cell belongs uses lookup.
columnIndex: Number
The index of the column to which the current cell belongs. For more information on how this index is calculated, refer to the Calculating the Column Index topic.
rowIndex: Number
The index of the row to which the current cell belongs. When you have several pages in a grid, grid rows are indexed beginning with 0 on each page. Note that group cells are also counted as rows and, thus, have row indexes. For further information about row indexes, see the Grid Rows topic.
column: Object
The settings of the column to which the current cell belongs.
rowType: String
The type of the row to which the current cell belongs. This field equals 'data' for ordinary rows or 'group' for group rows. Use this field to distinguish rows by type.
cellElement: jQuery
The element of the hovered cell.
The settings of the row to which the cell belongs.

Instead, you can use the onCellHoverChanged option to handle the event.

When implementing a handling function for this event, use the object passed to this function as its parameter. Among the fields of this object, you can find data relating to the cell whose hover state has been changed. For example, to identify whether a cell has been hovered over or hovered out, check the value of the eventType field.

See Also

cellPrepared

Fires after a cell has been rendered.

Event Handler Argument:
Information about the event.
Object structure:
component: Object
The widget instance.
element: jQuery
The widget's container.
model: Object
Data that is available for binding against the element. Available only in the Knockout approach.
data: Object
The object of a data source represented by the row to which the prepared cell belongs.
key: any
The key of the row. If a field providing keys is not specified in a data source, the whole data object is considered the key.
value: any
The value of the prepared cell as it is specified in the data source.
displayValue: String
The value displayed by the prepared cell. Differs from the value field only when the column to which the prepared cell belongs uses lookup.
text: String
The value of the prepared cell in a string format. Use this field to get the value with applied format.
columnIndex: Number
The index of the column to which the prepared cell belongs. For more information on how this index is calculated, refer to the Calculating the Column Index topic.
column: Object
The settings of the column to which the prepared cell belongs.
rowIndex: Number
The index of the row to which the prepared cell belongs. When you have several pages in a grid, grid rows are indexed beginning with 0 on each page. Note that group cells are also counted as rows and thus have row indexes. For further information about row indexes, see the Grid Rows topic.
rowType: String
The type of the row to which the prepared cell belongs. This field can be set to one of the following values: "data", "detail", "group", "groupFooter", "header", "filter" or "totalFooter". Use this field to distinguish rows by type.
The settings of the row to which the cell belongs.
isSelected: Boolean
Indicates whether or not the current row is selected.
isExpanded: Boolean
Indicates whether or not the group cell is expanded. This field is useful if the rowType field is 'group'.
cellElement: jQuery
The element of the prepared cell.

Instead, you can use the onCellPrepared option to handle the event.

When implementing a handling function for this event, use the object passed to this function as its parameter. Among the fields of this object, you can find data relating to the prepared cell.

See Also

contentReady

Raised when the widget's content is ready.

Event Handler Argument:
Information about the event.
Object structure:
component: Object
The widget instance.
element: jQuery
The widget's container.
model: Object
Data that is available for binding against the element. Available only in the Knockout approach.

Main article: onContentReady.

See Also

contextMenuPreparing

Fires before displaying a context menu that is invoked on one of the grid's header or row cells.

Event Handler Argument:
Information about the event.
Object structure:
component: Object
The widget instance.
element: jQuery
The widget's container.
model: Object
Data that is available for binding against the element. Available only in the Knockout approach.
items: Array
An array of items to be displayed by the context menu. The item objects must have the fields that are used by the ContextMenu default item template.
target: String
The name of the grid element on which the context menu is invoked: 'header', 'content' or 'footer'.
targetElement: jQuery
The cell that has been clicked to invoke the context menu.
columnIndex: Number
The current index of the column to which the clicked cell belongs. For more information on how this index is calculated, refer to the Calculating the Column Index topic.
column: Object
The settings of the column to which the clicked cell belongs.
rowIndex: Number
The visible index of the row to which the clicked cell belongs. When you have several pages in a grid, grid rows are indexed beginning with 0 on each page. Note that group cells are also counted as rows and, thus, have row indexes. For further information about row indexes, see the Grid Rows topic.
The settings of the row to which the clicked cell belongs.

Instead, you can use the onContextMenuPreparing option to handle the event.

Handle this event to change the set of items in a context menu before it is displayed.

See Also

dataErrorOccurred

Raised when an error occurs in the data source.

Event Handler Argument:
Information on the occurred error.
Object structure:
component: Object
The widget instance.
element: jQuery
The widget's container.
model: Object
The model data. Available only if you use Knockout.
The standard Error object that defines the error.

Main article: onDataErrorOccurred

See Also

disposing

Raised when the widget is removed from the DOM using the remove(), empty(), or html() jQuery methods only.

Event Handler Argument:
Information about the event.
Object structure:
component: Object
The widget instance.
element: jQuery
The widget's container.
model: Object
The model data. Available only if you use Knockout.

Main article: onDisposing

See Also

editingStart

Fires before a row (in row edit mode) or a cell (in batch edit mode) switches into the editing state.

Event Handler Argument:
Information about the event.
Object structure:
component: Object
The widget instance.
element: jQuery
The widget's container.
model: Object
Data that is available for binding against the element. Available only in the Knockout approach.
data: Object
The data object of the row.
key: any
The key of the row. If a field providing keys is not specified in a data source, the whole data object is considered the key. If a row has not been transmitted to the data source yet, its key is undefined.
cancel: Boolean
A flag allowing you to prevent the row from switching into the editing state.
column: Object
The options of the column whose cell is switching into the editing state; useful in the batch edit mode.

Instead, you can use the onEditingStart option to handle the event.

When implementing a handling function for this event, use the object passed to this function as its argument. Among the fields of this object, you can find parameters of the about-to-be-edited row.

If you need to prevent a specific row or cell from switching into the editing state, assign true to the cancel field of the object passed to the handler as the argument.

You can also distinguish rows that exist in the data source from rows that have not yet been transmitted to the data source. For this purpose, use the key field of the object with the row parameters. Not-yet-transmitted rows have this field undefined.

See Also

editorPrepared

Fires after an editor is created.

Event Handler Argument:
options: Object
Information about the event.
Object structure:
component: Object
The widget instance.
element: jQuery
The widget's container.
model: Object
Data that is available for binding against the element. Available only in the Knockout approach.
parentType: String
Identifies the type of the editor's parent element. Equals 'dataRow', 'filterRow', 'headerRow' or 'searchPanel'. Depending on the value of this field, different options are passed to the editorPrepared handler.
value: any
The current value of the editor.
setValue(newValue): any
A method that should be called to change the cell value when the editor value is changed.
updateValueTimeout: Number
Specifies the delay between the moment a user stops entering a filter value in the filter row or search panel and the moment this value is applied.
width: Number
The width of the editor; equals null for editors of all parent types except for the 'searchPanel'.
disabled: Boolean
Identifies whether or not the editor is disabled.
rtlEnabled: Boolean
Identifies whether or not the editor uses a right-to-left representation.
editorElement: jQuery
readOnly: Boolean
Identifies whether or not the editor responds to user actions.
dataField: String
The name of the field providing data for the column that the editor belongs to.
The properties of the row that the editor belongs to.

Instead, you can use the onEditorPrepared option to handle the event.

Many grid elements are constructed on editors. For example, the search panel is constructed on a text box, the selection column is built on check boxes in full, etc. Obviously, editors are also used to edit cells or rows in a grid. When default editors provided by DataGrid do not meet your requirements, you can customize them by changing their settings within the editorPrepared event handler. This handler will be called after an editor is created.

When implementing the handler, use the object passed to it as its argument. Among the fields of this object, you can find the options of the created editor. These options differ depending on the parent element of the editor. To identify the parent element, check the parentType field of the handler's argument.

When the parentType is 'dataRow' or 'headerRow', you can use the options described in the column's reference section.

NOTE
If you have specified the editCellTemplate option, the editorPrepared event will not fire when a row or a cell switches into the editing state.
See Also

editorPreparing

Fires before an editor is created.

Event Handler Argument:
Information about the event.
Object structure:
component: Object
The widget instance.
element: jQuery
The widget's container.
model: Object
Data that is available for binding against the element. Available only in the Knockout approach.
parentType: String
Identifies the type of the editor's parent element. Equals 'dataRow', 'filterRow', 'headerRow' or 'searchPanel'. Depending on the value of this field, different options are passed to the editorPreparing handler.
value: any
The current value of the editor.
setValue(newValue): any
A method that should be called to change the cell value when the editor value is changed.
updateValueTimeout: Number
Specifies the delay between the moment a user stops entering a filter value in the filter row or search panel and the moment this value applies.
width: Number
The width of the editor; equals null for editors of all parent types except for the 'searchPanel'.
disabled: Boolean
Identifies whether or not the editor is disabled.
rtlEnabled: Boolean
Identifies whether or not the editor uses a right-to-left representation.
cancel: Boolean
A flag allowing you to cancel the creation of the editor. Set it to true and implement a custom editor if your scenario requires it.
editorElement: jQuery
readOnly: Boolean
Identifies whether or not the editor responds to user actions.
editorName: String
The name of the editor widget.
editorOptions: Object
An object with configuration options for the editor widget.
dataField: String
The name of the field providing data for the column that the editor belongs to.
The properties of the row that the editor belongs to.

Instead, you can use the onEditorPreparing option to handle the event.

Many grid elements are constructed on editors. For example, the search panel is constructed on a text box, the selection column is built on check boxes in full, etc. Obviously, editors are also used to edit a cell or a row in a grid. When default editors provided by DataGrid do not meet your requirements, implement a custom editor. For this purpose, attach a handling function to the editorPreparing event. This function accepts an object as the parameter. Assign true to the cancel field of this object. After that, implement your editor using the other fields of this object.

You can distinguish editors by their parent element. Also, the parent element defines data passed to the editorPreparing handler. To identify the parent element, check the parentType field of the handler's argument.

When the parentType is 'dataRow' or 'headerRow', you can use the options described in the columns reference section.

NOTE
If you have specified the editCellTemplate option, the editorPrepared event will not fire when a row or a cell switches into the editing state.
See Also

exported

Fires after the exporting of grid data is completed.

Event Handler Argument:
Information about the event.
Object structure:
component: Object
The widget instance.
element: jQuery
The widget's container.
model: Object
Data that is available for binding against the element. Available only in the Knockout approach.

Instead, you can use the onExported option to handle the event.

See Also

exporting

Fires before exporting grid's data.

Event Handler Argument:
Information about the event.
Object structure:
component: Object
The widget instance.
element: jQuery
The widget's container.
model: Object
Data that is available for binding against the element. Available only in the Knockout approach.
fileName: String
The name of the file to which grid data is about to be exported.
cancel: Boolean
Indicates whether or not to cancel exporting.

Instead, you can use the onExporting option to handle the event.

See Also

fileSaving

Fires before the grid saves an Excel file with exported data on the user's local storage.

Event Handler Argument:
Information about the event.
Object structure:
component: Object
The widget instance.
element: jQuery
The widget's container.
fileName: String
The name of the file to be saved.
format: String
The format of the file to be saved. Equals 'EXCEL' for an Excel file.
data: BLOB
Exported data as a BLOB.
cancel: Boolean
To cancel file saving, assign true to this parameter.

Instead, you can use the onFileSaving option to handle the event.

See Also

initialized

Raised only once, after the widget is initialized.

Event Handler Argument:
Information about the event.
Object structure:
component: Object
The widget instance.
element: jQuery
The widget's container.

Main article: onInitialized

See Also

initNewRow

Raised before a new row is added to the widget.

Event Handler Argument:
Information about the event.
Object structure:
component: Object
The widget instance.
element: jQuery
The widget's container.
model: Object
The model data. Available only if you use Knockout.
data: Object
The data of the inserted row; initially empty.

Main article: onInitNewRow

See Also

keyDown

Raised when the widget is in focus and a key has been pressed down.

Event Handler Argument:
Information about the event.
Object structure:
component: Object
The widget instance.
element: jQuery
The widget's container.
jQueryEvent: jQuery.Event
The original jQuery event.
handled: Boolean
Indicates whether the widget has already handled this event.

Main article: onKeyDown

See Also

optionChanged

Raised after an option of the widget is changed.

Event Handler Argument:
Information about the event.
Object structure:
component: Object
The widget instance.
name: String
A short name of the option whose value has been changed.
fullName: String
A full name of the option whose value has been changed; contains a full hierarchy of the option.
value: any
A new value for the option.
element: jQuery
The widget's container.
model: Object
The model data. Available only if you use Knockout.

Main article: onOptionChanged

See Also

rowClick

Fires when a user clicks a grid row.

Event Handler Argument:
Information about the event.
Object structure:
component: Object
The widget instance.
element: jQuery
The widget's container.
model: Object
Data that is available for binding against the element. Available only in the Knockout approach.
jQueryEvent: jQuery.Event
The jQuery event.
data: Object
The object of the data source represented by the clicked row.
key: any
The key value of the clicked row.
values: Array
Values of the clicked row as they exist in the data source.
columns: Array
Grid columns. Each column in this array is represented by an object with column settings. The order of columns in this array and columns in the columns array coincides.
rowIndex: Number
The visible index of the clicked row. When you have several pages in a grid, grid rows are indexed beginning with 0 on each page. Note that group rows are also counted and, thus, have row indexes. For further information about row indexes, see the Grid Rows topic.
rowType: String
The type of the clicked row. This field equals 'data' for ordinary rows, 'group' for group rows or 'detail' for detail sections. Use this field to distinguish rows by type.
isSelected: Boolean
Indicates whether the clicked row is selected.
isExpanded: Boolean
Indicates whether or not the group row is expanded. This field is useful if the rowType field is 'group'.
groupIndex: Number
The group index of the clicked row. This field is useful if the rowType field is 'group'.
rowElement: jQuery
The clicked row; provides access to element-related jQuery operations.
handled: Boolean
Indicates if the grid has already handled the row click event.

Instead, you can use the onRowClick option to handle the event.

When implementing a handling function for this event, use the object passed to this function as its parameter. Among the fields of this object, you can find data relating to the clicked row.

NOTE
If there are any internal grid handlers for the row click, the rowClick event fires only after these handlers are executed. In this case, the handled field of the handler parameter is set to true.

In addition, you can perform certain actions when a user clicks a cell. For this purpose, handle the cellClick event. Note that the cellClick fires before the rowClick.

NOTE
When the clicked row is in the editing state, or switches to the editing state, the rowClick event will not fire. Instead, you can use the cellClick.
See Also

rowCollapsed

Raised after a row is collapsed.

Event Handler Argument:
Information about the event.
Object structure:
component: Object
The widget instance.
element: jQuery
The widget's container.
model: Object
The model data. Available only if you use Knockout.
key: any
The key of the row.

Main article: onRowCollapsed

See Also

rowCollapsing

Raised before a row is collapsed.

Event Handler Argument:
Information about the event.
Object structure:
component: Object
The widget instance.
element: jQuery
The widget's container.
model: Object
The model data. Available only if you use Knockout.
key: any
The key of the row.
cancel: Boolean
Allows you to cancel row collapsing.

Main article: onRowCollapsing

See Also

rowExpanded

Raised after a row is expanded.

Event Handler Argument:
Information about the event.
Object structure:
component: Object
The widget instance
element: jQuery
The widget's container.
model: Object
The model data. Available only if you use Knockout.
key: any
The key of the row.

Main article: onRowExpanded

See Also

rowExpanding

Raised before a row is expanded.

Event Handler Argument:
Information about the event.
Object structure:
component: Object
The widget instance.
element: jQuery
The widget's container.
model: Object
The model data. Available only if you use Knockout.
key: any
The key of the group or master row.
cancel: Boolean
Allows you to cancel row expansion.

Main article: onRowExpanding

See Also

rowInserted

Raised after a new row has been inserted into the data source.

Event Handler Argument:
Information about the event.
Object structure:
component: Object
The widget instance.
element: jQuery
The widget's container.
model: Object
The model data. Available only if you use Knockout.
data: Object
The data of the row.
key: any
The key of the row. If a field providing keys is not specified in the data source, the whole data object is considered the key.
The standard Error object defining an error that may occur during insertion.

Main article: onRowInserted

See Also

rowInserting

Raised before a new row is inserted into the data source.

Event Handler Argument:
Information about the event.
Object structure:
component: Object
The widget instance.
element: jQuery
The widget's container.
model: Object
The model data. Available only if you use Knockout.
data: Object
The data of the to-be-inserted row.
Allows you to cancel insertion of the row.

Main article: onRowInserting

See Also

rowPrepared

Fires after a row has been rendered.

Event Handler Argument:
Information about the event.
Object structure:
component: Object
The widget instance.
element: jQuery
The widget's container.
model: Object
Data that is available for binding against the element. Available only in the Knockout approach.
data: Object
The object of a data source represented by the prepared row.
key: any
The key of the row. If a field providing keys is not specified in a data source, the whole data object is considered the key.
values: any
Values of the current row as they exist in the data source.
columns: Array
Grid columns. Each column in this array is represented by an object with column settings. The order of columns in this array and columns in the columns array coincides.
rowIndex: Number
The visible index of the prepared row. When you have several pages in a grid, grid rows are indexed beginning with 0 on each page. Note that group cells are also counted as rows and, thus, have row indexes. For further information about row indexes, see the Grid Rows topic.
rowType: String
The type of the prepared row. This field can be set to one of the following values: "data", "detail", "group", "groupFooter", "header", "filter" or "totalFooter". Use this field to distinguish rows by type.
groupIndex: Number
The group index of the current row. This field is useful if the rowType field is 'group'.
isSelected: Boolean
Indicates whether the prepared row is selected.
isExpanded: Boolean
Indicates whether the prepared row is expanded.
rowElement: jQuery
The element of the hovered row.

Instead, you can use the onRowPrepared option to handle the event.

When implementing a handling function for this event, use the object passed to this function as its parameter. Among the fields of this object, you can find data relating to the prepared row.

See Also

rowRemoved

Raised after a row has been removed from the data source.

Event Handler Argument:
Information about the event.
Object structure:
component: Object
The widget instance.
element: jQuery
The widget's container.
model: Object
The model data. Available only if you use Knockout.
data: Object
The data of the row.
key: any
The key of the row. If a field providing keys is not specified in the data source, the whole data object is considered the key.
The standard Error object defining an error that may occur during removal.

Main article: onRowRemoved

See Also

rowRemoving

Raised before a row is removed from the data source.

Event Handler Argument:
Information about the event.
Object structure:
component: Object
The widget instance.
element: jQuery
The widget's container.
model: Object
The model data. Available only if you use Knockout.
data: Object
The data of the row.
key: any
The key of the row. If a field providing keys is not specified in the data source, the whole data object is considered the key.
Allows you to cancel removal of the row.

Main article: onRowRemoving

See Also

rowUpdated

Raised after a row has been updated in the data source.

Event Handler Argument:
Information about the event.
Object structure:
component: Object
The widget instance.
element: jQuery
The widget's container.
model: Object
The model data. Available only if you use Knockout.
data: Object
The updated data of the row; contains only those fields that have been updated.
key: any
The key of the row. If a field providing keys is not specified in the data source, the whole data object is considered the key.
The standard Error object defining an error that may occur during updating.

Main article: onRowUpdated

See Also

rowUpdating

Raised before a row is updated in the data source.

Event Handler Argument:
Information about the event.
Object structure:
component: Object
The widget instance.
element: jQuery
The widget's container.
model: Object
The model data. Available only if you use Knockout.
oldData: Object
The old data of the row.
newData: Object
The updated data of the row.
key: any
The key of the row. If a field providing keys is not specified in the data source, the whole data object is considered the key.
Allows you to cancel row updating.

Main article: onRowUpdating

See Also

rowValidating

Raised after cells in a row are validated against validation rules.

Event Handler Argument:
Information about the event.
Object structure:
component: Object
The widget instance.
element: jQuery
The widget's container.
model: Object
The model data. Available only if you use Knockout.
brokenRules: Array
An array of broken rules. The structure of rule objects is described in the Validation Rules section.
isValid: Boolean
Indicates whether data in all cells of the row satisfies the validation rules.
key: any
The key of the row. If a field providing keys is not specified in the data source, the whole data object is considered the key.
newData: Object
The data of the validated row after changes.
oldData: Object
The data of the validated row before changes.
errorText: String
An error message to be displayed.

Main article: onRowValidating

See Also

selectionChanged

Raised after selecting a row or clearing its selection.

Event Handler Argument:
Information about the event.
Object structure:
component: Object
The widget instance.
element: jQuery
The widget's container.
model: Object
The model data. Available only if you use Knockout.
currentSelectedRowKeys: Array
The keys of the rows that have been selected.
currentDeselectedRowKeys: Array
The keys of the rows whose selection has been cleared.
selectedRowKeys: Array
The keys of all selected rows.
selectedRowsData: Array
The data of all selected rows.
Does not include calculated values.

Main article: onSelectionChanged

See Also

toolbarPreparing

Raised before the toolbar is created.

Event Handler Argument:
Information about the event.
Object structure:
component: Object
The widget instance.
element: jQuery
The widget's container.
model: Object
The model data. Available only if you use Knockout.
toolbarOptions: Object

Main article: onToolbarPreparing

See Also