---
title: SAIF.Presentation.Web.Controls.V2.Menu overview
summary: High-level purpose, scope, and responsibilities for this library.
status: draft
owner: SAIF documentation team
last_reviewed: 2026-08-17
library: SAIF.Presentation.Web.Controls.V2.Menu
reference_type: package
---

# SAIF.Presentation.Web.Controls.V2.Menu overview

> **Documentation context:** Consumed as a packaged NuGet dependency by downstream front-end applications.
> **Documented via:** `SAIF.BOF.Presentation.Web.Infragistics103.nuspec` (repository root)

`SAIF.Presentation.Web.Controls.V2.Menu` is a pure ASP.NET WebForms presentation-tier control library that renders application navigation chrome — a collapsible left-side "Applications"/Favorites panel (`SAIFMenu`) and a top toolbar of category links and CRUD/print/help action icons (`SAIFMenuTop`) — on top of navigation and authorization data supplied entirely by external libraries.

## Purpose
- Renders navigation chrome (side panel and top toolbar) for ASP.NET WebForms pages, exposing eventing (`MenuNavigate`, `ToolbarClick`, `DefaultOnSubmit`, `OnContextChanged`) so the hosting application performs actual navigation and business actions.
- Consumed by ASP.NET WebForms pages that derive from `ViewPageBase` (`SAIF.Presentation.Web.MVC`)*, dropped onto pages via `ToolboxData` markup or master pages.

## Responsibilities
- Render a left-side navigation panel (`SAIFMenu`): favorites link list, collapsible application/category accordion (via `AjaxControlToolkit.Accordion`), and an optional "context value" text box (e.g., a claim-number field).
- Render a top toolbar (`SAIFMenuTop`): category-scoped navigation links plus a row of action icon buttons (Insert/Save/Delete/Edit/Cancel/Submit/Print/Preview/Email/Download/Calculate/Help/Set-Clear-Preferences), with per-button visibility/enabled state exposed via the nested `clsMenuButton` value object.
- Provide a shared building-block control (`SAIFImageButton`) that adds a "busy indicator" CSS class and client-side script for disabling other form controls while a postback is pending.
- Raise host-page-facing eventing (`MenuNavigate`, `ToolbarClick`, `DefaultOnSubmit`, `OnContextChanged`) so navigation/redirection and business actions are performed by the consuming application rather than by this library.
- Cache and reuse a session-scoped `NavigationContext` (keyed by the current Windows-authenticated user) so both controls can share the same navigation data on a page.
- Persist lightweight UI state: per-button model state in `ViewState`, and the "Show Applications" expand/collapse preference via `SAIF.Presentation.clsPreferences` (per-user, `PrefScope.AppLevel`, key `"SHOWAPPS"`, group `"BOMENU"`).

## Key components
- `SAIFMenu`: left/side navigation panel — favorites list, collapsible application/category accordion, and context-value text box.
- `SAIFMenuTop`: top toolbar combining category-scoped navigation links with a row of CRUD/print/help/preference action icons.
- `SAIFMenuTop.clsMenuButton`: nested value object describing one toolbar button's visibility/enabled/tooltip/image state, persisted in `ViewState`.
- `SAIFImageButton`: shared `ImageButton` subclass providing a "busy indicator" UX behavior with a companion client script, used by every toolbar icon and independently reusable.

## Related documentation
- [Index](index.md)
- [Architecture](architecture.md)
- [Dependencies](dependencies.md)
- [Operations and processes](operations-processes.md)
- [Business rules](business-rules.md)
- [Control catalog](control-catalog.md)
- [Configuration](configuration.md)
- [Security and authorization](security-authorization.md)
- [API reference](api/index.md)

> **Note:** Statements marked with * were inferred from code structure, naming conventions, or
> contextual evidence where direct confirmation was not available in source artifacts. Statements
> marked with ** could not be confirmed; treat as unknown until verified.

## Sources
- `SAIF.Presentation.Web.Controls.V2.Menu\SAIF.Presentation.Web.Controls.V2.Menu.vbproj`
- `SAIF.Presentation.Web.Controls.V2.Menu\SAIFMenu.vb`
- `SAIF.Presentation.Web.Controls.V2.Menu\SAIFMenuTop.vb`
- `SAIF.Presentation.Web.Controls.V2.Menu\SAIFImageButton.vb`
- `SAIF.BOF.Presentation.Web.Infragistics103.nuspec`
