将 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 属性选项 OrgName、OrgLcid 和 UserLcid 均可用,不要求通过 Xrm.Page.context 来使用 getOrgUniqueName、getOrgLcid 和 getUserId 方法。 对于 <Url> (RibbonDiffXml) 操作,还可以使用 PassParams 属性包括上下文信息。
Value 选项 PrimaryEntityTypeName 和 FirstPrimaryItemId 提供实体记录的信息。 可将 PrimaryItemIds 用于 HomepageGrid 功能区,以获取所有显示项的列表。
最后,可以使用 CommandProperties 值从功能区控件传递有关事件的详细信息。 使用此值可向中心功能发送上下文信息,以便根据事件的上下文确定特定操作。
另请参阅
自定义命令和功能区
使用功能区将参数传递给 URL
<CrmParameter> (RibbonDiffXml)
<JavaScriptFunction> (RibbonDiffXml)
<Url> (RibbonDiffXml)
定义功能区操作
定义自定义操作以修改功能区
Microsoft Dynamics 365
© 2017 Microsoft。 保留所有权利。 版权