使用 Xrm.Page 对象模型

 

发布日期: 2017年1月

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

在您编写窗体脚本时,将与 Xrm.Page 命名空间中的对象交互以执行下列操作:

  • 获取或设置属性值。

  • 显示和隐藏用户界面元素。

  • 引用每个属性的多个控件。

  • 访问每个实体的多个窗体。

  • 操作窗体导航项。

  • 与业务流程控件进行交互。

有关更多示例,请参阅脚本即时引用的表单

本主题内容

Xrm.Page 对象层次结构

执行上下文

集合

对象说明

  • 属性

  • 上下文

  • 控件

  • 实体

  • 窗体选择器

  • 导航

  • 进度

  • 阶段

  • 步骤

  • 选项卡

Xrm.Page 对象层次结构

如下图中所示,Xrm.Page 为下表中所述的三个对象提供了命名空间容器:

对象

说明

context

提供的方法可用于检索组织、用户或在查询字符串中传递到窗体的参数的特定信息。

data

提供实体数据和方法的访问权限,以管理窗体和业务流程控件中的数据。

ui

包含用于检索用户界面相关信息的方法,还包含窗体的数个子组件的集合。

Xrm.Page 对象模型

执行上下文

当注册事件处理程序的某个函数时,您可以选择将执行上下文对象作为第一个参数传递到该函数。 该对象包含允许您管理您希望与其他事件处理程序和所保存事件共享的变量。 有关详细信息,请参阅 执行上下文(客户端引用)保存事件参数(客户端引用)

集合

下表介绍 Xrm.Page 对象模型集合。 有关可用于集合的方法的信息,请参阅集合(客户端引用)

托收

说明

attributes

Xrm.Page.data.entity.attributes 集合提供对窗体上可用的每个实体属性的访问。 只有那些与添加到窗体的字段相对应的属性才可用。

controls

三个对象包含一个控件集合:

ui.controls

Xrm.Page.ui.controls 集合提供对位于窗体上的每个控件的访问。

attribute.controls

由于某个属性可能在窗体上具有多个控件,所以此集合会提供对其中每个控件的访问。 除非该属性有多个控件添加到窗体,否则此集合将只包含一个项。

section.controls

此集合只包含在 section 中找到的控件。

navigation.items

Xrm.Page.ui.navigation.items 集合提供对使用窗体编辑器的导航区域中定义的导航项的访问。 通过 TechNet:更新的窗体,用户可以使用命令栏导航至这些窗体。 在 TechNet:经典窗体中,这些位于窗体的左侧。

formSelector.items

当为某个实体提供多个窗体时,您可以将每个窗体与安全角色相关联。 当与用户相关联的安全角色使其可以看到多个窗体时,Xrm.Page.ui.formSelector.items 集合为该用户提供对每个可用窗体定义的访问。

tabs

您可以通过使用一个或多个选项卡来组织每个窗体。Xrm.Page.ui.tabs 集合提供对其中每个选项卡的访问。

sections

您可以通过使用一个或多个部分来组织每个窗体选项卡。 选项卡 sections 集合提供对其中每个部分的访问。

业务流程集合

Xrm.Page.data.process 内阶段和步骤的集合以相同的集合结构为依据,但也允许添加或删除集合中的项目。

使用 进度.getStages 方法来访问阶段的集合。 使用 阶段.getSteps 方法来访问步骤的集合。

对象说明

每个对象都拥有多种用于检索数据、获取或设置对象属性或执行操作的方法:

属性

每个属性都对应一个已作为字段添加到窗体的实体属性。 通常,只有那些已作为字段添加到窗体的实体属性才可用。 字段的每个实例都是一个控件。 字段可以多次添加到窗体,这样会创建引用相同属性的多个控件。

备注

复合属性都有特定行为。详细信息:为复合属性编写脚本

属性按类型进行分类。 您可以通过使用 getAttributeType 方法来确定属性的类型。

有些通用的方法适用于所有属性,但某些方法却仅对特定的属性类型可用。 有关详细信息,请参阅Xrm.Page.data. 实体属性(客户端引用)

备注

属性类型信息表示窗体中属性的行为。 它不一定对应于在应用程序中定义的字段类型或 AttributeMetadata 类型。 特定字段类型的属性可能会因为采用了不同的格式化方式而有不同的作用方式。

下表列出每种类型的属性架构类型和格式选项的预期属性类型字符串值。

应用程序字段类型

格式选项

属性类型

货币

不适用

money

日期和时间

日期和时间、仅限日期

datetime

十进制数

不适用

decimal

浮点数

不适用

double

查找

不适用

lookup

多行文本

不适用

memo

选项集

不适用

optionset

单行文本

电子邮件、文本、股票代号、URL、电话

string

单行文本

文本区域

memo

状态

不适用

optionset

状态描述

不适用

optionset

两个选项

两个单选按钮、复选框、列表

boolean

整数

无、持续时间

integer

整数

语言、时区

optionset

上下文

Xrm.Page.context 提供的方法可用于检索组织、用户或在查询字符串中传递到窗体的参数的特定信息。 有关详细信息,请参阅客户端上下文(客户端引用)

控件

表示窗体上存在的 HTML 元素。 某些控件绑定到特定的属性,而其他则可能表示未绑定的控件,例如 IFRAME、Web 资源或已添加到窗体的子网格。

在您的代码中对 IFrame、Web 资源和子网格控件使用特定的控件名称。 这些控件不绑定到某个属性。 当控件绑定到某个属性时,应避免在代码中包括特定的控件名称。 当有多个控件绑定到一个属性时,将在运行时确定控件名称,并且这些名称可能会根据控件在窗体中的位置不同而有所不同。

对于与属性绑定控件相关的大多数任务,您都可以使用属性控件集合或通过某个部分的控件集合来进行访问。 您不需要按名称引用控件,而是可以根据集合的上下文获取对它的引用。 在这种情况下,名称并不重要。 有关创建函数以在绑定到特定属性的所有控件中执行操作的方法,请参阅属性 控件 的示例。

备注

复合属性都有特定行为。详细信息:为复合属性编写脚本

备注

对于 Microsoft Dynamics 365 外部的大部分脚本开发工作,开发人员都可以通过使用 document.getElementById 方法来引用页面元素。 而 Microsoft Dynamics 365 窗体脚本则不支持这种方法。 属性会存储数据,而控件只是属性在窗体中的显示方式,认识到这一点是非常重要的。 对于绑定到属性的控件,您可能需要调整访问窗体中数据的习惯方式。

控件按类型进行分类。 您可以通过使用 51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_getControlType 方法来确定控件的类型。 某些控件方法仅对特定类型的控件可用。 例如,51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_addOption 方法仅对显示为选项集的控件可用。 有关详细信息,请参阅Xrm.Page.ui 控制方法(客户端引用)

实体

Xrm.Page.data.entity 提供的方法可用于检索页面上所显示的记录、save 方法以及窗体中包含的所有属性集合的特定信息。 有关更多信息,请参阅 Xrm.Page.data.entity(客户端引用)

窗体选择器

“Xrm.Page.ui.formSelector”包含一个项集合,用于提供查询当前用户可用窗体的功能。 使用 bcf42b09-b672-4f4b-b866-ea7b24cc3ae0#BKMK_navigate 方法可关闭当前的窗体并打开其他窗体。 有关详细信息,请参阅Xrm.Page.ui.formSelector 项(客户端引用)

导航

不包含任何方法。 通过项集合提供对导航项的访问。

进度

包含检索业务流程属性的方法。详细信息:流程方法

每个部分中包含管理其显示方式的方法,此外还有访问包含该部分的选项卡的方法。 每个部分还会通过控件集合提供对其中控件的访问。详细信息:Xrm.Page.ui 部分(客户端引用)

阶段

每个 进度 具有一个可以使用流程 getStages 方法访问的阶段集合。

一个阶段为活动阶段。详细信息:业务流程结构。

步骤

步骤代表 阶段 期间要收集的单个数据项。 每个阶段具有一个可以使用阶段 getSteps 方法访问的步骤集合。详细信息:业务流程结构。

通过引用具有“header_process_<control name>”特定前缀的控件名称,您可以访问业务流程控件活动阶段内的步骤控件。 例如,若要隐藏代表 purchaseprocess 属性的步骤,请使用以下方法:

Xrm.Page.getControl("header_process_purchaseprocess").setVisible(false);

选项卡

选项卡是多个部分组合在一个页面上。 它包含更改选项卡显示方式的方法。 您可以通过部分集合来访问选项卡中的各个部分。 有关详细信息,请参阅Xrm.Page.ui 选项卡(客户端引用)

另请参阅

脚本即时引用的表单
编写和调试适用于手机和平板电脑的 Dynamics 365 的脚本
为 Microsoft Dynamics 365 窗体编写代码
为复合属性编写脚本
编写业务流程脚本
通过 Microsoft Dynamics 365 使用 JavaScript
客户端编程引用
客户端编程引用
Microsoft Dynamics 365 的 JavaScript 库
自定义实体窗体

Microsoft Dynamics 365

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