---
title: SAIF.Presentation.Web.Controls.V2 control catalog
summary: Catalog of custom controls, vendor wrappers, and designer components provided by this library.
status: draft
owner: SAIF Documentation Team
last_reviewed: 2026-08-17
library: SAIF.Presentation.Web.Controls.V2
reference_type: package
---

# SAIF.Presentation.Web.Controls.V2 control catalog

## Controls

| Control | Base class | Category | Key properties | Client behavior |
|---|---|---|---|---|
| `BannerControl` | `WebControl` | Composite | `DisplayBannerLogout`, `DisplayBannerFeedback`, `PrintPageTitle`, `LoggingIn`, `ShowInternalDisplayBanner` | Yes: renders logout link (postback) and feedback popup link* |
| `BannerControlV2` | `WebControl` | Composite | `DisplayBannerLogout`, `DisplayBannerFeedback`, `PrintPageTitle`, `LoggingIn` | Yes: revised banner look, same logout/feedback link behavior* |
| `ConditionsGrid` | `WebControl`, `INamingContainer` | Composite | `Text`, `PanelState` | None beyond hosted `SAIFPanel`/`GridView` client behavior |
| `FocusManager` | `Control` | Layout | `BoundControlId` | Yes: emits inline `<script>` that focuses the bound control on load |
| `Utilities.mdlUtilities` (Module) | n/a | Data | n/a (module methods) | None |
| `MultiListControl` | `CompositeControl` | Composite | `WildCardItem`, `IsTextEditable`, `ListDatasource`, `TextDatasource`, `AutoPostback` | Yes: `MultiList.js` popup show/hide, Firefox-specific layout branch* |
| `OneClickSubmit` | `Button` | Input | `DEFAULT_CSS_CLASS` | Yes: injects `OneClickOnly()` JS guard against duplicate submission |
| `SAIFAlphaNumericLinkControl` | `WebControl`, `INamingContainer` | Composite | n/a (generates 27 `SAIFLinkButton` children) | None (postback per link) |
| `SAIFLinkButton` | `LinkButton` | Input | `Value` (`AlphaNumericCharacter`) | None |
| `SAIFButton` | `Button`, `INamingContainer` | Input | `EnableIndicator`, `DisableFormControlsOnClick` | Yes: registers `Button.js` AJAX busy-indicator script |
| `SAIFCheckBox` | `CheckBox` | Input | `[ReadOnly]` | None (static image swap only when read-only) |
| `SAIFCheckBoxList` | `CheckBoxList` | Input | `[ReadOnly]` | None |
| `SAIFComboBox` | `DropDownList`, `INamingContainer` | Input | `EnableIndicator`, `DisableFormControlsOnChange` | Yes: registers `ComboBox.js` AJAX busy-indicator script |
| `SAIFDropDownList` | `DropDownList` | Input | `[ReadOnly]`, `EnumDatasource`, `SelectedItemAsEnum`, `MapUnderscore`, `ValueText` | None |
| `SAIFGrid` | `GridView` | Data | `DataKeyField`, `RaiseRowClickEvent`, `RowClickEventHandler`, `UseZebraRows` | Yes: `SAIF.Grid.js` client-side sortable/zebra/row-click wiring |
| `SAIFHoverHelp` | `Label`, `INamingContainer` | Display | `HelpText`, `PanelWidth`, `PopupPosition` | Yes: registers `HoverHelp.js` hover-popup script |
| `SAIFListBox` | `ListBox`, `INamingContainer` | Input | `EnableIndicator`, `DisableFormControlsOnChange` | Yes: registers `SAIF.ListBox.js` AJAX busy-indicator script |
| `SAIFMessage` | `CompositeControl` | Composite | `Text`, `DisplayImage` | Yes: registers `Message.js`; server sets image via keyword scan ([BR-V2-005](business-rules.md#br-v2-005-message-icon-is-derived-from-message-text-keywords-unless-explicitly-overridden)) |
| `SAIFPanel` | `Panel`, `INamingContainer` | Layout | `Collapseable`, `PanelState`, `Title`, `CollapseImageURL`, `ExpandImageURL` | Yes: registers `Panel.js`; hidden field persists collapse/expand state |
| `SAIFPanelDesigner` | `ContainerControlDesigner` | Designer | `FrameCaption`, `FrameStyle` | None (design-time only) |
| `SAIFRadioButton` | `RadioButton` | Input | `[ReadOnly]` | None |
| `SAIFRadioButtonList` | `RadioButtonList` | Input | `[ReadOnly]` | None |
| `SAIFTabBar` | `WebControl`, `INamingContainer` | Layout | `Mode`, `Tabs`, `AllowSelectedTabClick`, `SelectedTab` | Yes: `onfocus`-triggered postback wiring per unselected tab |
| `SAIFTabs` | `Control`, `INamingContainer` | Layout | `ActiveTabStyle`, `InactiveTabStyle`, `TabImageLeft`, `TabImageRight`, `SelectedTab` | Yes: link-click postback wiring per tab |
| `SAIFTabsDesigner` | `ControlDesigner` | Designer | n/a (`GetDesignTimeHtml`) | None (design-time only) |
| `SAIFTextBox` | `TextBox`, `INamingContainer` | Input | `ShowCharacterCounter` | Yes: registers `TextBox.js` character-counter script |

## Binding map

Data-binding surfaces owned by the composite/grid/banner controls; controls not listed here own no data-binding surface of their own (they either have none, or delegate entirely to a hosted framework control that a caller binds directly).

| Control | Binding/input surface | Target/rendered element | Behavior/source |
|---|---|---|---|
| `ConditionsGrid` | `Fill(inDataSource As CollectionBase)` | Internal `GridView` hosted inside the control | Caller passes a `CollectionBase`; the method sets `grid.DataSource` and calls `grid.DataBind()` directly, rather than exposing a `DataSource` property. |
| `MultiListControl` | `ListDatasource` (Object), `TextDatasource` (Object) | Internal `CheckBoxList` (`m_CheckList`) | Overridden `DataBind()` calls `MyBase.DataBind()`, then sets `m_CheckList.DataSource = m_ListData` (built from `ListDatasource`/`TextDatasource`) and calls `m_CheckList.DataBind()`. |
| `SAIFGrid` | `DataKeyField` (String) | Rows of the underlying `GridView` (base class) | Not itself a binding source — `DataKeyField` names a property on each bound row's data item, read via reflection (`GetProperty`) in `OnRowDataBound` to build the client-side row-click value; actual data binding uses the inherited `GridView.DataSource`/`DataBind()`. |
| `BannerControl` / `BannerControlV2` | None | n/a | These controls render banner chrome (logout link, feedback link, title) from simple property values (`DisplayBannerLogout`, `PrintPageTitle`, etc.); they do not bind to a data source. |

## Vendor dependencies

No third-party vendor control assemblies (e.g., Infragistics, AJAX Control Toolkit) are referenced from this project's `.vbproj`, despite the repository-root `.nuspec` bundling an `AjaxControlToolkit.dll` binary into the overall `SAIF.BOF.Presentation.Web.Infragistics103` package*.

## Designer components

| Component | Associated control | Purpose |
|---|---|---|
| `SAIFPanelDesigner` | `SAIFPanel` | Provides design-time chrome (frame caption/style) for `SAIFPanel` in the Visual Studio designer. |
| `SAIFTabsDesigner` | `SAIFTabs` | Renders a static three-tab placeholder (`GetDesignTimeHtml`) so `SAIFTabs` displays reasonably in the designer surface, since tabs are normally added imperatively at runtime. |

> **Note:** Statements marked with * were inferred from code structure, naming conventions, or
> contextual evidence where direct confirmation was not available in source artifacts.

## Related documentation
- [Index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Dependencies](dependencies.md)
- [Operations and processes](operations-processes.md)
- [Business rules](business-rules.md)
- [API reference](api/index.md)

## Sources
- SAIF.Presentation.Web.Controls.V2\Banner.vb
- SAIF.Presentation.Web.Controls.V2\BannerControlV2.vb
- SAIF.Presentation.Web.Controls.V2\ConditionsGrid.vb
- SAIF.Presentation.Web.Controls.V2\FocusManager.vb
- SAIF.Presentation.Web.Controls.V2\mdlUtilities.vb
- SAIF.Presentation.Web.Controls.V2\MultiListControl.vb
- SAIF.Presentation.Web.Controls.V2\OneClickSubmitControl.vb
- SAIF.Presentation.Web.Controls.V2\SAIFAlphaNumericLinkControl.vb
- SAIF.Presentation.Web.Controls.V2\SAIFButton.vb
- SAIF.Presentation.Web.Controls.V2\SAIFCheckBox.vb
- SAIF.Presentation.Web.Controls.V2\SAIFCheckBoxList.vb
- SAIF.Presentation.Web.Controls.V2\SAIFComboBox.vb
- SAIF.Presentation.Web.Controls.V2\SAIFDropDownList.vb
- SAIF.Presentation.Web.Controls.V2\SAIFGrid.vb
- SAIF.Presentation.Web.Controls.V2\SAIFHoverHelp.vb
- SAIF.Presentation.Web.Controls.V2\SAIFListBox.vb
- SAIF.Presentation.Web.Controls.V2\SAIFMessage.vb
- SAIF.Presentation.Web.Controls.V2\SAIFPanel.vb
- SAIF.Presentation.Web.Controls.V2\SAIFRadioButton.vb
- SAIF.Presentation.Web.Controls.V2\SAIFRadioButtonList.vb
- SAIF.Presentation.Web.Controls.V2\SAIFTabBar.vb
- SAIF.Presentation.Web.Controls.V2\SAIFTabs.vb
- SAIF.Presentation.Web.Controls.V2\SAIFTabsDesigner.vb
- SAIF.Presentation.Web.Controls.V2\SAIFTextBox.vb
- SAIF.BOF.Presentation.Web.Infragistics103.nuspec
