适用于Dynamics 365 for Customer Engagement apps 9.x版本。

本文是一篇翻译,原文来源是微软官方文档

本文链接:https://www.cnblogs.com/hhelibeb/p/11042391.html

概述

Client API form context (formContext)提供了对当前代码运行的上下文中的form或对form上的item的引用,比如,一个quick view控件或者一个可编辑grid中的行。

在早期版本,全局的Xrm.Page对象用于代表form或form中的item。在9.0版本中,Xrm.Page对象过时了,你应该使用被传入的运行上下文对象的getFormContext方法获取相应的from的引用。

注意:formContext对象允许你创建通用的事件处理器,根据调用位置来对form或可编辑grid进行操作。详见getFormContext (Client API reference)。从ribbon action的Javascript函数中获取formContext和从scripting中获取它的方式是不同的。更多信息:Form and grid context in ribbon actions.

使用formContext对象

以下是一段使用formContext对象的JS代码,通过传入的运行上下文(executionContext)获取formContext对象,

function displayName(executionContext)
{
var formContext = executionContext.getFormContext(); // get formContext var firstName = formContext.getAttribute("firstname").getValue();
var lastName = formContext.getAttribute("lastname").getValue();
console.log(firstName + " " + lastName);
}

(译注:省略了原文中有关过时的Xrm.Page对象的部分)

formContext 对象模型

formContext对象下包含dataui对象,它们允许你通过编程方式操作数据和用户界面元素。

data对象

data对象可用于访问entity数据,也提供了管理form、business process flow控件中数据的方法。它包含以下对象:

Object Description
entity 提供方法来根据页面的显示的记录检索信息,也提供了save方法、以及包含form中全部属性的集合。
process 提供方法检索business process flow的属性。

它也提供了一个用于访问非entity绑定的控件的属性集。详见文章的稍后部分的 formContext对象模型中的集合

更多信息:formContext.data

UI对象

提供检索UI信息的方法,包含from或grid的某些子组件的集合。它包含以下对象:

Object Description
formSelector        提供item集合,该集合可以用于查询对当前用户有效的form。可以使用navigate方法关闭当前form,并打开一个新的form。
navigation 不包含任何方法,提供通过item集合访问item的能力。参考下一节。
process 提供在form上与business process flow控件交互的方法。

更多信息:formContext.ui

formContext对象模型中的集合

下面的表格描述了Xrm对象模型中的集合。关于集合的一般可用方法的信息,参看Collections (Client API reference).。

Collection Description
attributes

有2个对象包含attributes集合

- formContext.data.attributes: 用于访问非entity绑定属性。

- formContext.data.entity.attributescollection: 用于访问在form中可用的entity。只对与添加到form上的字段对应的属性可用。

controls

有3个对象包含controls集合

- formContext.ui.controls: 用于访问form中出现的控件。

- formContext.data.entity.attribute.controls: 因为一个属性也许会在表单上面有多个控件,该集合用于访问它们。如果没有为属性添加多个控件,那么这个集合只会包含1个item.

- formContext.ui.tabs.sections.controls: 这个集合只包含在section中的控件。

formContext.data.process.stages

formContext.data.process.steps

用于访问business process flow中的stage和step集合。可以从集合中添加和删除item。
formContext.ui.formselector.items                   当一个entity有多个form的时候,可以通过安全角色关联这些form。当用户的安全角色允许他访问不止一个form时,该集合可以用于访问对于当前用户可用的各个form。
formContext.ui.navigation.items The formContext.ui.navigation.itemscollection 用于访问通过form编辑器定义的导航项。用户通过command bar来访问那些导航项。
formContext.ui.quickForms

用于访问所有quick view控件和它在Customer Enagagement forms中的上级控件。

formContext.ui.tabs 可以通过一或多个tab来组织form。这个集合用于访问tab.
formContext.ui.tabs.sections              tab中可以包含一或多个section。该集合用于访问section。

相关主题

getFormContext method

getGlobalContext method

Execution context methods

Dynamics 365中的Client API form context (formContext)的更多相关文章

  1. Dynamics 365中使用Web API将查找字段的值设置为空值的方法。

    摘要: 本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复270或者20180424可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyon ...

  2. 自定义工作流活动报错:您无法登陆系统。原因可能是您的用户记录或您所属的业务部门在Microsoft Dynamics 365中已被禁用。

    本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复265或者20170926可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me ...

  3. 将Dynamics 365中的用户及其角色、角色导出到Excel中

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复240或者20161204可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...

  4. Dynamics 365工作流报错:您无法登陆系统。原因可能是您的用户记录或您所属的业务部门在Microsoft Dynamics 365中已被禁用。

    本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复265或者20170926可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me ...

  5. Dynamics 365中开发和注册插件介绍

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  6. Dynamics 365中的应用程序介绍

    本人微信和易信公众号:微软动态CRM专家罗勇 ,回复275或者20180630可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me ...

  7. Dynamics 365中配置和使用文件夹级别的跟踪(folder-level tracking)

    本人微信和易信公众号:微软动态CRM专家罗勇 ,回复274或者20180630可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me ...

  8. 在Dynamics 365中使用SURVEYJS代替对话(Dialog)制作话术

    本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复269或者20180318可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me ...

  9. Dynamics 365中的事件框架与事件执行管道(Event execution pipeline)

    本文介绍了Microsoft Dynamics 365(以下简称D365)中的两个概念,事件框架(Event Framework)与事件执行管道(Event execution pipeline). ...

随机推荐

  1. django-migrate一败再败

    python3 manage.py makemigrations # 生成数据库迁移文件 python3 manage.py migrate # 迁移数据库 简简单单两条命令就完成了django的数据 ...

  2. npm切换成淘宝镜像源

    0-前言 我们都知道node下载第三方依赖包是从国外服务器下载,不是速度奇慢就是下载异常,切换成国内的淘宝镜像源很有必要: 1-切换方法 $ npm config set registry https ...

  3. 转:logback的使用和logback.xml详解

    一.logback的介绍 Logback是由log4j创始人设计的另一个开源日志组件,官方网站: http://logback.qos.ch.它当前分为下面下个模块: logback-core:其它两 ...

  4. JVM前奏篇(大局观)

    话不多说直接上干货,先来看oracle官网中是怎么描述JDK的:https://docs.oracle.com/javase/8/docs/index.html 这是官网中JDK.JRE.JVM的一个 ...

  5. 详细nginx配置SSL

    1.nginx的ssl 让nginx实现用https来访问网站,http是80端口,https是443端口. https其实就是一种加密的http 2.为什么要加密 例子:在网上银行汇款,在你汇款的过 ...

  6. C#语言和SQL Server数据库技术_前四章错题

      1.在C#中,如果让某个方法只能被它所在的程序集内的其他方法访问,可使用(C)修饰这个方法. (选择一项) A:private B:protected C:internal D:以上都不对 2.下 ...

  7. C和C++从零开始系列(二)

    今天说一下 C和C++ 的if 条件语句. 在实际编程中,会经常有逻辑判断,比如,输入的数值参数中,如果是奇数,输出This is uneven. 如果是偶数,输出 This is even. 我们在 ...

  8. 【Python3网络爬虫开发实战】 分析Ajax爬取今日头条街拍美图

    前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:haoxuan10 本节中,我们以今日头条为例来尝试通过分析Ajax请求 ...

  9. ARTS-S EN0001-In tech race with China, US universities may lose a vital edge

    原文 The U.S. is still out in front of global rivals when it comes to innovation, but American univers ...

  10. swagger的配置

    // This method gets called by the runtime. Use this method to add services to the container. public ...