bcquality/microsoft/knowledge/performance/avoid-currpage-update-in-onaftergetrecord.md
Jesper Schulz-Wedde 4f0a13a801
Promote knowledge for Microsoft review skills (#153)
Move canonical knowledge for Microsoft-owned review domains into the Microsoft layer and document the skill/knowledge co-location policy.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Co-authored-by: Jesper Schulz-Wedde <jesper.schulzwedde@microsoft.com>
Copilot-Session: 2a6ea875-d38e-4f30-aadb-0d606f9be231
2026-09-03 15:06:01 +02:00

1.3 KiB

bc-version domain keywords technologies countries application-area
all
performance
currpage-update
onaftergetrecord
list-page
scroll
refresh
al
w1
all

Do not call CurrPage.Update inside OnAfterGetRecord

Contributions welcome — open a PR to refine or extend this article.

Description

OnAfterGetRecord on a list already runs once per visible row on scroll and refresh. CurrPage.Update asks the page to reload, which fires those triggers again. The result is a refresh loop or a stutter on every row paint. Official developer performance guidance lists CurrPage.Update() in OnAfterGetRecord next to Modify as work that must not live there. Sibling of do-not-modify-in-onaftergetrecord.md (writes); this file is the client refresh half.

Best Practice

Put display-only results in page variables assigned in OnAfterGetRecord without calling Update. If the page must refresh after an action, call CurrPage.Update(false) from OnAction once, not per row.

See sample: avoid-currpage-update-in-onaftergetrecord.good.al.

Anti Pattern

trigger OnAfterGetRecord() begin ... CurrPage.Update(); end; on a list. The signal is CurrPage.Update inside OnAfterGetRecord or OnAfterGetCurrRecord without an explicit user action.

See sample: avoid-currpage-update-in-onaftergetrecord.bad.al.