可编辑网格对象和方法(客户端引用)
发布日期: 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");
提示
若要标识窗体中的网格控件的名称,但不打开该窗体编辑器,请参阅使用浏览器开发人员工具中的信息。
可编辑网格支持以下是只读网格控件方法:getEntityName 和 getGrid。
网格
可编辑网格支持 GridControl 返回的 Grid 的以下方法。getGrid 方法:getRows、getSelectedRows 和 getTotalRecordCount。
GridRow
可编辑网格支持 Grid.getRows 和 Grid.getSelectedRows 方法返回的 GridRow 的 getData 方法。
GridRow 还支持提供使用可编辑网格行的途径的 data 集合。 有关访问集合中数据的可用方法的信息,请参阅集合(客户端引用)。
GridRowData
可编辑网格支持 GridRow.getData 方法返回的 GridRowData 的 getEntity 方法。
GridRowData 还提供用于检索可编辑网格行中显示的记录的特定信息的方法,包括该行包含的所有属性的集合。 属性数据限制为可编辑网格显示的列。 有关访问集合中数据的可用方法的信息,请参阅 集合(客户端引用)。
GridEntity
可编辑网格支持 GridRowData.getEntity 方法返回的 GridEntity 的以下方法:
除了使用 GridRowData.getEntity 方法之外,您可以通过直接访问 GridRowData.entity 对象检索 GridEntity。
GridEntity 还支持提供使用可编辑网格中实体的属性集合的方法的 attributes 集合。 每个属性 (GridAttribute) 表示可编辑网格的单元格中的数据,包含对与属性关联的所有单元格的参考。 有关访问集合中数据的可用方法的信息,请参阅 集合(客户端引用)。
GridAttribute
GridAttribute 支持所选网格行的属性的以下方法:getName、getRequiredLevel、setRequiredLevel、getValue 和 setValue。
使用 Grid.getSelectedRows 方法检索可编辑网格中的选定行。
GridAttribute 还支持所选网格行的属性的 controls 集合,其提供使用与属性关联的单元格集合的方法。 选择网格行的每个单元 (GridCell) 类似于与可编辑网格的属性关联的窗体的控件。 有关访问集合中数据的可用方法的信息,请参阅 集合(客户端引用)。
提示
出于性能考虑,在选择记录前,可编辑网格的行(记录)不可编辑。 用户必须选择网格中的单个记录进行编辑。 一旦在可编辑网格中选择了记录,Dynamics 365 内部评估一系列问题,包括用户对记录的访问权,记录是否有效以及字段验证,以确保在编辑数据时数据的安全性和有效性。 考虑通过 getFormContext 方法来使用 OnRecordSelect 事件来访问处于可编辑状态的网格中的记录。
GridCell
除 setNotification 和 clearNotification 外,GridCell 还支持控件的以下方法:
备注
可编辑网格一次不能显示多个通知。
getDisabled
返回单元格是否被禁用(只读)。
gridCellObj.getDisabled()
- 返回值
类型: 布尔。 如果单元格已禁用,则返回 true,否则返回 false。
setDisabled
设置单元格是否被禁用。
gridCellObj.setDisabled(bool)
参数
类型: 布尔。 如果单元格应该被禁用,则返回 ture,否则返回 false。备注
启用只读单元格进行编辑会导致在保存记录时出错。 如果字段被服务器视为是只读的,如果修改值则可能发生错误。 这可能在以下情况下发生:用户不具有记录的写权限,已禁用记录,或用户没有必要的字段级安全权限。
getLabel
返回包含单元格的列的标签。
gridCellObj.getLabel()
- 返回值
类型: 字符串。 列的标签。
另请参阅
网格(只读)对象和方法(客户端引用)
在 Dynamics 365 中使用可编辑网格
Microsoft Dynamics 365
© 2017 Microsoft。 保留所有权利。 版权