bcquality/microsoft/knowledge/performance/avoid-currpage-update-in-onaftergetrecord.md
Jesper Schulz-Wedde b6da405376 Improve partner onboarding and documentation navigation
Lead with a complete plugin quick start and add task-oriented usage, troubleshooting, customization, and contribution guides. Preserve the broader plugin framing, correct conflicting contract guidance, support Agents folder reviews, and align repository validation. Convert existing sample references to clickable links without changing knowledge rules.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-09-09 17:25:29 +02:00

1.4 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.