1. 程式人生 > >Dynamics 365中的Client API form context (formContext)

Dynamics 365中的Client API form context (formContext)

適用於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

    // use formContext instead of Xrm.Page  
    var firstName = formContext.getAttribute("firstname").getValue(); 
    var lastName = formContext.getAttribute("lastname").getValue();
    console.log(firstName + " " + lastName);
}

 

formContext 物件模型

使用formContext物件下的data和ui物件,它們允許你通過程式設計方式操作資料和使用者介面元素。

data物件

data物件用於訪問entity資料,提供了管理form、business process flow控制元件中資料的方法。包含以下物件:

ObjectDescription
entity 提供方法來根據頁面的顯示的記錄檢索資訊,也提供了save方法,以及包含form中全部屬性的集合。
process 提供方法檢索business process flow的屬性。

它也提供了一個用於訪問未繫結entity的控制元件的屬性集。詳見文章的稍後部分的 formContext物件模型中的集合。

更多資訊:formContext.data

UI物件

提供在UI中檢索資訊的方法,除了from或grid的某些子元件外,它還包含以下物件:

ObjectDescription
formSelector 提供item集合,該集合可以用於查詢對當前使用者有效的form。可以使用navigate方法關閉當前form,並開啟一個新的form。
navigation 不包含任何方法,提供通過item集合訪問item的能力。參考下一節。
process 提供在form上與business process flow控制元件互動的方法。

更多資訊:formContext.ui

formContext物件模型中的集合

下面的表格描述了Xrm物件模型中的集合。關於通常的集合的可用方法的資訊,參看Collections (Client API reference).。

 

CollectionDescription
attributes

有2個物件包含attributes集合


- formContext.data.attributes: 用於訪問非entity繫結屬性。

- formContext.data.entity.attributescollection: 用於訪問在form中可用的entity。只對與新增到form上的欄位對應的屬性可用。

controls

有3個物件包含控制元件集合


- formContext.ui.controls: 用於訪問form中出現的控制元件。

- formContext.data.entity.attribute.controls: 因為一個屬性也許會在表單上面有多個控制元件,該集合用於訪問它們。如果沒有為屬性新增多個控制元件,那麼這個集合只會包含1個item.

- formContext.ui.tabs.sections.controls: 這個集合只包含在section中的控制元件。

formContext.data.process.stagesand 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

&n