1

我正在处理 Dynamics 365 客户自助服务门户中的一个新网页,该网页将显示发票的实体列表,并在实体列表上启用过滤。其中一项要求是在当前视图中显示发票数量以及所有发票的总和。我能够使用一些 Liquid 模板代码获取这些值,但我注意到如果我将过滤器应用于当前视图或更改我的视图选择,记录计数和总和不会刷新。例如,我从查看活动发票开始,我的 Liquid 代码输出要匹配的记录计数和总和,但随后使用过滤选项我将列表缩小到上周创建的发票,记录计数和总和不会刷新。发生的情况是实体列表在没有页面回发的情况下刷新,但 Liquid 代码只会在页面回发的情况下执行。我还考虑过使用 javascript 来运行基于相同视图的另一个查询以获取记录计数和总和,但我发现了一些问题:它对性能并不理想,因为我会查询相同的数据两次(一次用于实体列表和一次使用 javascript),如果将过滤器应用于实体列表,我知道我可以将 javascript 附加到列表刷新事件,但我可以使用 javascript 访问过滤器选项以获得正确的查询吗?当然,如果我使用 Liquid 代码获取值并刷新页面,那么我的过滤器就会丢失。这甚至可能吗?对性能来说并不理想,因为我将查询相同的数据两次(一次用于实体列表,一次用于 javascript),如果将过滤器应用于实体列表,我知道我可以将 javascript 附加到列表刷新事件,但可以我使用 javascript 访问过滤器选项以获得正确的查询?当然,如果我使用 Liquid 代码获取值并刷新页面,那么我的过滤器就会丢失。这甚至可能吗?对性能来说并不理想,因为我将查询相同的数据两次(一次用于实体列表,一次用于 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 %}
4

0 回答 0