访问 Dataverse 数据
Power Pages 制作者可使用 HTML 生成输出结果,其中包含静态内容。 同样,制作者在处理来自 Microsoft Dataverse 的多个页面和动态内容以及逐页做出调整时,也可使用 Liquid。 Liquid 元素可充当占位符,在将输出结果发送到浏览器之前,Liquid 元素将会替换成 Dataverse 中的数据。
Power Pages 可实现许多可与 Dataverse 配合使用的扩展。 下表描述了一些可用的 Dataverse 特定的 Liquid 对象。
对象 | 描述 |
---|---|
page |
指当前网站请求页。 page 对象允许访问很多组件,例如当前页面的痕迹导航、当前页面的标题或 URL(例如 {{ page.title }} ),以及底层 Power Apps 行的任何其他列或相关表。 |
user |
指当前网站用户,允许访问底层 Power Apps 联系人行的所有列。 如果无用户登录,此变量将为 null 。 |
website |
指网站,允许访问 Power Apps 网站 (adx_website) 行的所有列。 |
通用表 | 表对象允许访问 Dataverse 表中的行和列。 所有表的集合称为 entities 。 例如,{{ entities.contact[request.params.contactid].firstname }} 是指由 contactid 请求参数标识的联系人行中的“名”列。 |
可以使用 Microsoft Dataverse 特定的标记加载和显示 Dataverse 数据,或使用其他 Power Pages 框架服务。 这些标记是 Liquid 语言特定于 Dataverse 的扩展。 下表描述了其中一些标记。
标记 | 描述 |
---|---|
chart |
将 Power Apps 图表添加到网页。 如需了解将 Power Apps 图表添加到网页的步骤,请参阅向门户中的网页添加图表。 |
powerbi |
在页面中添加 Microsoft Power BI 仪表板和报表。 如需了解将 Power BI 报表或仪表板添加到网站中的网页的步骤,请参阅向网页添加 Power BI 报表或仪表板。 |
entitylist |
Liquid block 标记,按名称或 ID 加载给定列表。 如果列表成功加载,将呈现代码块中的内容。 |
entityview |
Liquid block 标记,按名称或 ID 加载给定的 Dataverse 视图。 如果视图成功加载,将呈现代码块中的内容。 |
fetchxml |
支持用户查询 Dataverse 中的数据并在页面中呈现结果。 |
codecomponent |
允许您使用 Liquid 标记嵌入代码组件。 有关详细信息,请参阅将 Liquid 模板标记用于代码组件。 |
在下面的示例中,系统加载了有效货币视图并显示了所有返回的行。 在 Power Pages 设计工作室中,由于制作者的隐式设计时间特权,此代码会生成输出。 然而,在网站中,用户需要获得货币表的读取特权,以便该片段返回数据。
{% entityview logical_name:'transactioncurrency', name:'Active Currencies' %}
<p>We support {{ entityview.total_records }} currencies.</p>
<ul>
{% for cur in entityview.records -%}
<li>{{ cur.currencyname }}</li>
{% endfor %}
</ul>
{% endentityview %}
输出结果应类似于以下示例:
我们支持 4 种货币。
- 澳大利亚元
- 加拿大元
- 欧元
- 美元
通过在 Power Pages 中使用 Liquid,您可以:
直接在网页内容或内容片段中添加动态内容。
完全通过 Power Apps 内部的配置使用 Web 模板存储源内容,以便在整个 Power Pages 内容管理系统中使用。
完全通过 Power Apps 内部的配置呈现网站标头和主导航栏。
使用 Power Pages 中的代码组件(代码组件使用 Power Apps component framework 构建)为处理窗体、视图和仪表板数据的用户提供增强的体验。
在这些场景中,您可动态访问 Power Pages 功能,比如站点设置、内容片段、列表和基本窗体等。
重要提示
Liquid 语句仅可作为输出 进行处理。 Liquid 无法扩展处理用户交互(如窗体提交)的服务器端代码。