Dela via


Editable grid objects and methods (client-side reference)

 

Applies To: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

You can set event handlers to subscribe to events triggered by editable grids when data is selected, changed, or saved in an editable grid. Editable grids support most of the client-side methods supported by non-editable grids. More information: Use editable grids

Note

Editable grid was introduced in the December 2016 update for Dynamics 365 (online and on-premises).

In This Topic

Editable grid events

Editable grid methods

Editable grid events

Editable grid supports the following events that you can use for registering and executing your client-side scripts. You can register for these events using the Events tab of the Microsoft Dynamics 365 page that is used to enable editable grids for an entity or a read-only grid:

  • OnRecordSelect

  • OnChange

  • OnSave

Important

Use the execution context getFormContext method to create common event handlers that can operate either on an editable grid GridCell or form field depending on where the event handler is executed. More information: getFormContext

OnRecordSelect

The OnRecordSelect event occurs when a single row (record) is selected in the editable grid. This event won't occur if a user selects different cells in the same row, or selects multiple rows.

OnChange

The OnChange event occurs when a value is changed in a cell in the editable grid and the cell loses focus. This event can also occur when an attribute value is updated using the setValue method.

OnSave

The OnSave event occurs before sending the updated information to the server, and when any of the following occurs:

  • There is a change in the record selection.

  • The user explicitly triggers a save operation using the editable grid’s save button.

  • The user applies a sort, filter, group, pagination, or navigation operation from the editable grid while there are pending changes.

Some important points to consider for the OnSave event:

  • If a user edits multiple columns of the same record in sequence, the OnSave event will only be fired once to ensure optimal performance and form behavior compatibility.

  • Editable grid and the parent form have separate save buttons. Clicking the save button in one will not save changes in the other.

  • Editable grid does not save pending changes when navigation operations are performed outside of its context. If the control has unsaved data, that data may be lost. Consequently, the OnSave event may not fire. For example, this could happen when navigating to a different record using a form lookup field or through the ribbon.

  • Pressing the refresh button in the editable grid causes it to discard any pending changes, and the OnSave event won't be fired.

  • Editable grid control does not implement an auto-save timer.

  • Editable grid suppresses duplicate detection rules.

Editable grid methods

Editable grid supports some new and most of the existing methods supported by read-only grids:

  • GridControl

  • Grid

  • GridRow

  • GridRowData

  • GridEntity

  • GridAttribute

  • GridCell

GridControl

If you know the name of the editable grid control, you can access it using the following code. For example, to access the CONTACTS subgrid in the default account form:

var contactsGrid = Xrm.Page.getControl("Contacts");

Tip

To identify the names of grid controls in the form without opening the form editor, see the information in Use browser developer tools.

Editable grid supports the following read-only grid control methods: getEntityName and getGrid.

Grid

Editable grid supports the following methods for the Grid returned by the GridControl.getGrid method: getRows, getSelectedRows, and getTotalRecordCount.

GridRow

Editable grid supports the getData method for the GridRow returned by the Grid.getRows and Grid.getSelectedRows methods.

GridRow also supports the data collection that provides ways to work with an editable grid row. See Collections (client-side reference) for information on the methods available for accessing data in a collection.

GridRowData

Editable grid supports the getEntity method for the GridRowData returned by the GridRow.getData method.

GridRowData also provides methods for retrieving information specific to a record displayed in an editable grid row, including a collection of all the attributes included in the row. Attribute data is limited to the columns presented by the editable grid. See Collections (client-side reference) for information on the methods available to access data in a collection.

GridEntity

Editable grid supports the following methods for the GridEntity returned by the GridRowData.getEntity method:

Apart from using the GridRowData.getEntity method, you can retrieve the GridEntity by directly accessing the GridRowData.entity object.

GridEntity also supports the attributes collection that provides methods of working with a collection of attributes for an entity in the editable grid. Each attribute (GridAttribute) represents the data in the cell of an editable grid, and contains a reference to all the cells associated with the attribute. See Collections (client-side reference) for information on the methods available to access data in a collection.

GridAttribute

The GridAttribute supports the following methods for attributes of a selected grid row: getName, getRequiredLevel, setRequiredLevel, getValue, and setValue.

Use the Grid.getSelectedRows method to retrieve the selected row in an editable grid.

 GridAttribute also supports the controls collection for attributes of a selected grid row, which provides methods to work with a collection of cells associated with the attribute. Each cell (GridCell) of a selected grid row is analogous to a control on a form that is tied to an attribute in an editable grid. See Collections (client-side reference) for information on the methods available to access data in a collection.

Tip

For performance reasons, a row (record) in an editable grid is not editable until the record is selected. Users must select a single record in a grid to edit it. Once a record is selected in an editable grid, Dynamics 365 internally evaluates a bunch of things including user access to the record, whether the record is active, and field validations to ensure that data security and validity are honored when you edit data. Consider using the OnRecordSelect event with the getFormContext method to access records in the grid that are in the editable state.

GridCell

In addition to setNotification and clearNotification , the GridCell supports the following methods for controls:

Note

Editable grids can’t display more than one notification at a time.

getDisabled

Returns whether the cell is disabled (read-only).

gridCellObj.getDisabled()
  • Return Value
    Type: Boolean. True if the cell is disabled, otherwise false.

setDisabled

Sets whether the cell is disabled.

gridCellObj.setDisabled(bool)
  • Arguments
    Type: Boolean. True if the cell should be disabled, otherwise false.

  • Remarks
    Enabling a read-only cell for editing can cause an error when the record is saved. If the field is considered read-only by the server, an error may occur if the value is modified. This may happen in scenarios where the user doesn't have write privileges to the record, the record is disabled, or the user doesn't have the necessary field-level security privileges.

getLabel

Returns the label of the column that contains the cell.

gridCellObj.getLabel()
  • Return Value
    Type: String. The label of the column.

See Also

Grid (read-only) objects and methods (client-side reference)
Use editable grids

Microsoft Dynamics 365

© 2016 Microsoft. All rights reserved. Copyright