我正在开发Dynamics 365客户自助服务门户中的新网页,该网页将显示实体列表中已启用过滤的发票实体列表。其中一个要求是显示当前视图中的发票数量和所有发票的总和。我能够使用一些Liquid模板代码获取这些值,但我注意到,如果我将过滤器应用于当前视图或者我更改了视图选择,则记录计数和总和不会刷新。例如,我从查看活动发票开始,我的Liquid代码输出记录计数和总和以匹配,但随后使用过滤选项我将列表缩小到上周创建的发票,记录计数和总和不刷新。发生的事情是实体列表刷新没有页面回发,但Liquid代码只会执行页面回发。我也考虑过使用javascript来运行基于相同视图的另一个查询来获取记录计数和总和,但是我发现了一些问题:它不是理想的性能,因为我会查询相同的数据两次(一次用于实体列表和一次使用javascript),如果过滤器应用于实体列表,我知道我可以将javascript附加到列表刷新事件,但是我可以使用javascript访问过滤器选项以获得正确的查询吗?当然,如果我使用Liquid代码获取值并进行页面刷新,那么我将失去我的过滤器。这甚至可能吗?
我在页面上的当前Liquid代码,使用与页面关联的实体列表获取记录计数和总和:
{% assign totalinvamt = 0.0 %}
{% entitylist id:page.adx_entitylist.id %}
{% entityview %}
Loaded default view of the entity list associated with the current page, with {{ entityview.total_records }} total records.
{% for r in entityview.records %}
{% assign totalinvamt = totalinvamt | plus: r["totalamount"] %}
{% endfor %}
<p>invoice total: {{ totalinvamt | format: "c" }}</p>
{% endentityview %}
{% endentitylist %}