Skip to main content
This document describes how to programmatically navigate to pages, fields, table/collection rows, and individual cells within a form using the goto API on DocumentEditor.

Overview

The goto method enables programmatic navigation to specific locations within a form. This is useful for:
  • Guiding users to required fields after validation
  • Implementing custom navigation flows
  • Deep linking to specific form sections
  • Auto-scrolling to specific fields
  • Opening a specific table or collection row in its row form (modal)
  • Focusing a specific cell within a table or collection row

Path-Based Navigation

Navigate using a slash-separated path string. Up to four segments are supported.
Important: Use fieldPositionId from page.fieldPositions[]._id, not fieldId from document.fields[]._id. Using the wrong ID will cause navigation to fail.
For row-level paths, the field must be a table or collection type. The rowId must match an existing row’s ID in that field’s value; otherwise goto returns .failure. For column-level paths, the columnId must match an existing visible column in the field; otherwise goto returns .failure (but still navigates to the row).

GotoConfig

Navigation behavior is configured via GotoConfig. Pass it as the second argument to goto.
Examples:
If you omit gotoConfig, the default GotoConfig() is used (open: false, focus: false). The goto method returns a NavigationStatus indicating success or failure.
Failure reasons include:
  • Page does not exist
  • Page is hidden (due to conditional logic)
  • Field position does not exist
  • Field is hidden (due to conditional logic)
  • For row-level paths: field is not a table/collection, or the row ID is not found in the field’s value
  • For column-level paths: the column ID does not exist or is hidden
When the page changes, the SDK emits page focus and page blur events. See Event Handling for details.