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
1.3 KiB
| bc-version | domain | keywords | technologies | countries | application-area | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
performance |
|
|
|
|
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.