---
title: FocusManager
summary: API reference for FocusManager.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-08-17
library: SAIF.Presentation.Web.Controls.V2
reference_type: package
---

# FocusManager

Emits a client-side startup script that moves browser focus to a named control when the page loads, resolving the target relative to the page's control tree rather than requiring the caller to manage script registration directly [BR-V2-086](../../business-rules.md#br-v2-086-focus-is-set-only-when-the-target-control-exists).

## Purpose
- Resolves `BoundControlId` against the page's control hierarchy and registers a focus() startup script only when the target exists [BR-V2-086](../../business-rules.md#br-v2-086-focus-is-set-only-when-the-target-control-exists).
- Produces no output at all when the target cannot be resolved, rather than raising an error [BR-V2-088](../../business-rules.md#br-v2-088-unresolvable-boundcontrolid-produces-no-output).

## Context
- Namespace: `SAIF.Presentation.Web.Controls.V2`
- Assembly/package: `SAIF.Presentation.Web.Controls.V2` (packaged in `SAIF.BOF.Presentation.Web.Infragistics111.nuspec`)

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| BoundControlId | `Public Property BoundControlId As String` | ID of the control (resolved via `FindControl`) that should receive focus on page load. |
| Render | `Public Overrides Sub Render(writer As HtmlTextWriter)` | Resolves `BoundControlId` and registers the client-side focus script, or renders nothing. |

## Behavioral notes
- Renders nothing rather than throwing when `BoundControlId` cannot be resolved to a live control [BR-V2-088](../../business-rules.md#br-v2-088-unresolvable-boundcontrolid-produces-no-output).

## Constraints and usage notes
- `BoundControlId` must match a control that is already present in the naming container at render time.

## Sources
- `SAIF.Presentation.Web.Controls.V2/FocusManager.vb`
