可编辑网格对象和方法(客户端引用)

 

发布日期: 2017年1月

适用于: Dynamics 365 (online),Dynamics 365 (on-premises),Dynamics CRM 2016,Dynamics CRM Online

您可以在选择、更改或保存可编辑网格中的数据时,将事件处理程序设置为订阅可编辑网格触发的事件。 可编辑网格支持不可编辑网格支持的大多数客户端方法。 更多信息:在 Dynamics 365 中使用可编辑网格

备注

可编辑网格是在 适用于 Dynamics 365 的 2016 年 12 月更新(联机和本地) 中引入的。

本主题内容

可编辑网格事件

可编辑网格方法

可编辑网格事件

可编辑网格支持可以用于注册和执行客户端脚本的以下事件。 您可以使用用于启用实体或只读网格的可编辑网格的 Microsoft Dynamics 365 页面的事件选项卡注册这些事件:

  • OnRecordSelect

  • OnChange

  • OnSave

重要

使用执行上下文 getFormContext 方法可以创建可在可编辑网格运行GridCell或可以根据事件处理程序执行的位置构建字段的通用事件处理程序。详细信息:getFormContext

OnRecordSelect

在可编辑网格中选择单个行(记录)时发生 OnRecordSelect 发生。 如果用户在同一行选择不同的单元格,或选择多行,则此事件不会发生。

OnChange

当值在可编辑子网格的单元格中更改且单元格失去焦点时,将发生 OnChange 事件。 当使用 setValue 方法更新属性值时也将发生此事件。

OnSave

在将更新信息发送到服务器之前,且发生以下任何一种情况时,将发生 OnSave 事件:

  • 记录选择发生更改。

  • 用户使用可编辑网格的保存按钮显式触发保存操作。

  • 存在待定更改时,用户从可编辑网格应用排序、筛选、分组、分页或导航操作。

OnSave 事件应该考虑的一些重点问题:

  • 如果用户按顺序编辑同一个记录的多个列,OnSave 事件只会发生一次,以确保最佳性能和形成行为兼容性。

  • 可编辑网格和父窗体有单独的保存按钮。 单击一方的保存按钮不会保存另一方的更改。

  • 当导航操作在其上下文外部执行时,可编辑网格不保存待定更改。 如果控件有未保存的数据,该数据可能丢失。 因此,OnSave 事件不会发生。 例如,当使用窗体查找字段或通过功能区导航到其他记录时,这可能发生。

  • 按可编辑网格的刷新按钮将使其放弃所有待定更改,OnSave 事件不会发生。

  • 可编辑网格控件不实现自动保存计时器。

  • 可编辑网格取消了重复检测规则。

可编辑网格方法

可编辑网格支持只读网格支持的部分新方法和大多数现有方法:

  • GridControl

  • 网格

  • GridRow

  • GridRowData

  • GridEntity

  • GridAttribute

  • GridCell

GridControl

如果知道可编辑网格控件的名称,可使用以下代码访问该控件。 例如,访问默认客户窗体中的 CONTACTS 子网格:

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

提示

若要标识窗体中的网格控件的名称,但不打开该窗体编辑器,请参阅使用浏览器开发人员工具中的信息。

可编辑网格支持以下是只读网格控件方法:getEntityNamegetGrid

网格

可编辑网格支持 GridControl 返回的 Grid 的以下方法。getGrid 方法:getRowsgetSelectedRowsgetTotalRecordCount

GridRow

可编辑网格支持 Grid.getRowsGrid.getSelectedRows 方法返回的 GridRowgetData 方法。

GridRow 还支持提供使用可编辑网格行的途径的 data 集合。 有关访问集合中数据的可用方法的信息,请参阅集合(客户端引用)

GridRowData

可编辑网格支持 GridRow.getData 方法返回的 GridRowDatagetEntity 方法。

GridRowData 还提供用于检索可编辑网格行中显示的记录的特定信息的方法,包括该行包含的所有属性的集合。 属性数据限制为可编辑网格显示的列。 有关访问集合中数据的可用方法的信息,请参阅 集合(客户端引用)

GridEntity

可编辑网格支持 GridRowData.getEntity 方法返回的 GridEntity 的以下方法:

除了使用 GridRowData.getEntity 方法之外,您可以通过直接访问 GridRowData.entity 对象检索 GridEntity

GridEntity 还支持提供使用可编辑网格中实体的属性集合的方法的 attributes 集合。 每个属性 (GridAttribute) 表示可编辑网格的单元格中的数据,包含对与属性关联的所有单元格的参考。 有关访问集合中数据的可用方法的信息,请参阅 集合(客户端引用)

GridAttribute

GridAttribute 支持所选网格行的属性的以下方法:getNamegetRequiredLevelsetRequiredLevelgetValuesetValue

使用 Grid.getSelectedRows 方法检索可编辑网格中的选定行。

GridAttribute 还支持所选网格行的属性的 controls 集合,其提供使用与属性关联的单元格集合的方法。 选择网格行的每个单元 (GridCell) 类似于与可编辑网格的属性关联的窗体的控件。 有关访问集合中数据的可用方法的信息,请参阅 集合(客户端引用)

提示

出于性能考虑,在选择记录前,可编辑网格的行(记录)不可编辑。 用户必须选择网格中的单个记录进行编辑。 一旦在可编辑网格中选择了记录,Dynamics 365 内部评估一系列问题,包括用户对记录的访问权,记录是否有效以及字段验证,以确保在编辑数据时数据的安全性和有效性。 考虑通过 getFormContext 方法来使用 OnRecordSelect 事件来访问处于可编辑状态的网格中的记录。

GridCell

setNotificationclearNotification 外,GridCell 还支持控件的以下方法:

备注

可编辑网格一次不能显示多个通知。

getDisabled

返回单元格是否被禁用(只读)。

gridCellObj.getDisabled()
  • 返回值
    类型: 布尔。 如果单元格已禁用,则返回 true,否则返回 false。

setDisabled

设置单元格是否被禁用。

gridCellObj.setDisabled(bool)
  • 参数
    类型: 布尔。 如果单元格应该被禁用,则返回 ture,否则返回 false。

  • 备注
    启用只读单元格进行编辑会导致在保存记录时出错。 如果字段被服务器视为是只读的,如果修改值则可能发生错误。 这可能在以下情况下发生:用户不具有记录的写权限,已禁用记录,或用户没有必要的字段级安全权限。

getLabel

返回包含单元格的列的标签。

gridCellObj.getLabel()
  • 返回值
    类型: 字符串。 列的标签。

另请参阅

网格(只读)对象和方法(客户端引用)
在 Dynamics 365 中使用可编辑网格

Microsoft Dynamics 365

© 2017 Microsoft。 保留所有权利。 版权