将 Microsoft Dynamics 365 数据作为参数从页面传递到功能区操作

 

发布日期: 2017年1月

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

在功能区中定义操作时,通常必须从页面向 JavaScript 函数或 URL 传递数据。 本主题介绍使用 <CrmParameter> (RibbonDiffXml) 元素检索这些值的选项。

网格值

可用于 <CrmParameter> (RibbonDiffXml) 元素的大多数值都与处理网格中或层次结构图表中显示的数据相关。 通过使用 Value 属性枚举选项,可通过以下方式轻松隔离项目:

  • 选定项目

    • SelectedControlSelectedItemCount

    • SelectedControlSelectedItemIds

    • SelectedControlSelectedItemReferences

  • 所有项目

    • SelectedControlAllItemCount

    • SelectedControlAllItemIds

    • SelectedControlAllItemReferences

  • 未选定项目

    • SelectedControlUnselectedItemCount

    • SelectedControlUnselectedItemIds

    • SelectedControlUnselectedItemReferences

对于上述每个分组,可以收集项目数和 GUID 标识符。 如果将这些值传递给 URL,则还可以检索 EntityReference 对象,该对象包含唯一标识网格中的对象所需的全部信息。 无论查看的页面是主网格 (HomepageGrid) 还是位于窗体中的子网格,这些参数都适用。 在与 SelectedEntityTypeName 参数结合使用时,您会拥有必须传递给其他应用程序的所有信息。

窗体值

通过窗体功能区,可以使用 Xrm.Page.data.entity.属性 集合和 Xrm.Page.ui.控件 集合检索已知字段的值。 但是,如果要传递选定表单字段的值,则必须编写更多脚本来获取该值。

在功能区控件收到焦点时,可以使用 PrimaryControlId 参数获取拥有焦点的控件的 Id 值。 此 Id 为文档对象模型 (DOM) Id 值。 若要获取该数据值,必须尝试通过以下示例中的代码来使用该值:

var focusFieldValue = Xrm.Page.ui.controls.get(PrimaryControlId).getAttribute().getValue()

上下文信息

除数据值外,还可以使用 <CrmParameter> (RibbonDiffXml) 检索其他上下文信息。

为方便起见,Value 属性选项 OrgNameOrgLcidUserLcid 均可用,不要求通过 Xrm.Page.context 来使用 getOrgUniqueNamegetOrgLcidgetUserId 方法。 对于 <Url> (RibbonDiffXml) 操作,还可以使用 PassParams 属性包括上下文信息。

Value 选项 PrimaryEntityTypeNameFirstPrimaryItemId 提供实体记录的信息。 可将 PrimaryItemIds 用于 HomepageGrid 功能区,以获取所有显示项的列表。

最后,可以使用 CommandProperties 值从功能区控件传递有关事件的详细信息。 使用此值可向中心功能发送上下文信息,以便根据事件的上下文确定特定操作。

另请参阅

自定义命令和功能区
使用功能区将参数传递给 URL
<CrmParameter> (RibbonDiffXml)
<JavaScriptFunction> (RibbonDiffXml)
<Url> (RibbonDiffXml)
定义功能区操作
定义自定义操作以修改功能区

Microsoft Dynamics 365

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