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

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

## Controls

| Control | Base class | Category | Key properties | Client behavior |
|---|---|---|---|---|
| `SAIFWarp` | `Infragistics.WebUI.Misc.WebAsyncRefreshPanel` | Vendor wrapper | `ControlsFocus`, `FocusControlID` | Yes: registers focus-restoration, error-redirect, and progress-indicator init scripts. |
| `clsDropDownController` | `System.Web.UI.Control` | Data | `Column1`, `Column2`, `List1`, `List2`, `List1Code`, `List1Display`, `List2Code`, `List2Display`, `List2Key` | Yes: generates and registers a client-side cascading-dropdown filter function. |
| `SAIFWebDateTimeEdit` | `Infragistics.WebUI.WebDataInput.WebDateTimeEdit` | Vendor wrapper | (inherited from base; no additional public properties) | Yes: registers an `onfocus` script that blanks sentinel "no date" values. |
| `SAIFWebMaskEdit` | `Infragistics.WebUI.WebDataInput.WebMaskEdit` | Vendor wrapper | `PhoneValue`, `TaxIdValue`, `PHONE_EXT` | None — these accessors are server-side only, read after postback. |

## Vendor dependencies

| Vendor assembly | Version | Controls using |
|---|---|---|
| `Infragistics35.WebUI.Misc.v10.3` | 10.3.20103.2120 | `SAIFWarp` |
| `Infragistics35.WebUI.UltraWebGrid.v10.3` | 10.3.20103.2120 | `clsDropDownController` |
| `Infragistics35.WebUI.WebDataInput.v10.3` | 10.3.20103.2120 | `SAIFWebDateTimeEdit`, `SAIFWebMaskEdit` |
| `Infragistics35.Web.v10.3` | 10.3.20103.2120 | Core assembly shared across all four controls* |
| `Infragistics35.WebUI.Shared.v10.3` | 10.3.20103.2120 | Shared Infragistics WebUI types referenced across the vendor control set* |

## Binding map

The table below traces how `clsDropDownController` binds `List1`/`List2` data-source selectors to `Column1`/`Column2` value lists and the generated client-side filter relationship (see [BR-5](business-rules.md#br-5-cascading-dropdown-filters-column2-options-by-column1-key) and [Cascading dropdown data bind](operations/cascading-dropdown-data-bind.md)).

| Source input | Selector property | Reflected via | Staging collection | Target grid column | Value list binding | Filter relationship |
| --- | --- | --- | --- | --- | --- | --- |
| `List1` | `List1Code` | `TypeDescriptor.GetProperties` → property named by `List1Code` | `l1` (`ListItem.id`) | `Column1` | `Column1.ValueList.ValueMember = List1Code` | Each `l1` item's `id` is a `case` label in the generated `BeforeEdit{Column2.Key}` switch statement. |
| `List1` | `List1Display` | `TypeDescriptor.GetProperties` → property named by `List1Display` | `l1` (`ListItem.desc`) | `Column1` | `Column1.ValueList.DisplayMember = List1Display` | Not used in filtering; display text only. |
| `List2` | `List2Code` | `TypeDescriptor.GetProperties` → property named by `List2Code` | `l2` (`ListItem.id`) | `Column2` | `Column2.ValueList.ValueMember = List2Code` | Emitted as the value half of each `vListFilter[n] = new Array(id, desc)` entry. |
| `List2` | `List2Display` | `TypeDescriptor.GetProperties` → property named by `List2Display` | `l2` (`ListItem.desc`) | `Column2` | `Column2.ValueList.DisplayMember = List2Display` | Emitted as the display half of each `vListFilter[n]` entry. |
| `List2` | `List2Key` | `TypeDescriptor.GetProperties` → property named by `List2Key` | `l2` (`ListItem.key`) | `Column2` | Not bound to `Column2.ValueList` directly | Compared (`item2.key.ToUpper = item1.id.ToUpper`) against each `l1` item's `id` to decide which `l2` items populate that `l1` item's `case` block in `vListFilter`. |

At runtime, when a Column2 cell enters edit mode (`BeforeEnterEditModeHandler = "BeforeEdit" & Column2.Key`), the generated script reads the current row's `Column1`-keyed cell value (`catCell`), matches it against the `switch(catCell)` case built from `l1`, and replaces `col.ValueList` with the `vListFilter` array of matching `l2` entries — implementing the Column1→Column2 cascading filter.

## 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)
- [Configuration settings](configuration.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.Infragistics103\SAIFWarp.vb
- SAIF.Presentation.Web.Controls.Infragistics103\clsDropDownController.vb
- SAIF.Presentation.Web.Controls.Infragistics103\SAIFWebDateTimeEdit.vb
- SAIF.Presentation.Web.Controls.Infragistics103\SAIFWebMaskEdit.vb
- SAIF.Presentation.Web.Controls.Infragistics103\SAIF.Presentation.Web.Controls.Infragistics103.vbproj
