---
title: SAIF.Presentation.Web.Controls.Infragistics103 operations and processes
summary: Business and technical operations supported 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 operations and processes

This page is the operation catalog and cross-operation hub for this library. Each operation's detailed, step-by-step logic lives in its own page under `operations/`. This library has no business operations in the BOF sense (no `AppManager`, no `OnWrite`/`OnRetrieve`, no transaction boundaries) — the "operations" below are control lifecycle behaviors triggered by the ASP.NET page lifecycle or explicit `DataBind()` calls from a consuming page.

## Operation catalog
| Operation | Intent | Trigger | Inputs | Outputs | Rules |
| --- | --- | --- | --- | --- | --- |
| [SAIFWarp async-refresh initialization](operations/saifwarp-async-refresh-initialization.md) | Register the focus-restoration script and wire the panel's initialization client-side event. | ASP.NET `Init` event of `SAIFWarp`. | `ControlsFocus` property, `Page` context. | Registered client script blocks; `ClientSideEvents` wiring. | — |
| [SAIFWarp pre-render error/init script registration](operations/saifwarp-pre-render-error-init-script-registration.md) | Wire the async-refresh error handler and progress-indicator init script before render. | ASP.NET `PreRender` event of `SAIFWarp`. | `Page` context. | Registered startup/client scripts; `ClientSideEvents.Error` wiring. | [BR-4](business-rules.md#br-4-async-refresh-error-redirects-to-central-error-page) |
| [SAIFWarp child-control setup and hidden-field rendering](operations/saifwarp-child-control-setup-and-hidden-field-rendering.md) | Create and keep current the hidden field used to carry the focus target across an async postback. | ASP.NET control-creation and render lifecycle phases. | `FocusControlID` property. | Hidden input control `{ID}_FOCUS` added to `Controls` and rendered. | — |
| [Cascading dropdown data bind](operations/cascading-dropdown-data-bind.md) | Bind Column1/Column2 value lists from data sources and register the client-side cascading filter script. | Explicit `DataBind()` call from a consuming page/control, or ASP.NET data-binding cascade. | `Column1`, `Column2`, `List1`, `List2`, `List1Code`/`List1Display`/`List2Code`/`List2Display`/`List2Key`. | Populated `Column1.ValueList`/`Column2.ValueList`; registered client script block `"DD"`; populated `l1`/`l2` collections. | [BR-5](business-rules.md#br-5-cascading-dropdown-filters-column2-options-by-column1-key) |
| [Cascading dropdown JavaScript generation](operations/cascading-dropdown-javascript-generation.md) | Generate the client-side filter function that restricts Column2's value list based on Column1's selected value. | Called from within `DataBind` (see above). | Populated `l1`/`l2` collections, `Column1.Key`, `Column2.Key`. | A JavaScript string registered as the `"DD"` client script block. | [BR-5](business-rules.md#br-5-cascading-dropdown-filters-column2-options-by-column1-key) |
| [SAIFWebDateTimeEdit null-date suppression](operations/saifwebdatetimeedit-null-date-suppression.md) | Blank sentinel "no date" values when the field gains focus. | ASP.NET `Init` event of `SAIFWebDateTimeEdit`. | None beyond the control's own rendered text. | Registered client script `SDTE_Focus`; an `onfocus` attribute on the control. | [BR-1](business-rules.md#br-1-sentinel-null-date-suppression-on-focus) |
| [SAIFWebMaskEdit value accessors](operations/saifwebmaskedit-value-accessors.md) | Return cleaned phone/tax-ID values instead of raw mask text. | Property read by consuming code (e.g., a page reading the posted-back value). | The control's underlying `RawText`/`Text`. | A cleaned string value. | [BR-2](business-rules.md#br-2-dangling-phone-extension-marker-stripped), [BR-3](business-rules.md#br-3-empty-masked-field-returns-empty-string) |

## Process flow diagram
The following diagram visualizes the primary cascading-dropdown operational flow, the most complex process in this library.

```mermaid
flowchart TD
	Start([Consuming page calls DataBind]) --> Bind[Bind Column1/Column2 ValueList from List1/List2]
	Bind --> Reflect[Project List1/List2 items into ListItem via reflection]
	Reflect --> Gen[GenerateJavaScript builds BeforeEdit function]
	Gen --> Register[RegisterClientScriptBlock 'DD']
	Register --> Focus{User edits Column2 cell}
	Focus -->|BeforeEnterEditModeHandler fires| Filter[Filter col.ValueList by matching l1/l2 key]
	Filter --> End([Filtered options shown in grid cell])
```

## Failure and edge-case behavior
- `clsDropDownController.DataBind`: if no `TypeConverter` to `String` is found for a `List1Code`/`List1Display`/`List2Code`/`List2Display`/`List2Key` property, the corresponding `ListItem` field is silently left blank rather than raising an exception.
- `SAIFWarp` pre-render: any async-refresh error with `flags > 1` redirects the entire page to `/weberror/processError.aspx` (see [BR-4](business-rules.md#br-4-async-refresh-error-redirects-to-central-error-page)).
- `SAIFWebMaskEdit.PhoneValue`: catches `System.Data.StrongTypingException` and returns an empty string on that specific error path.

## Related documentation
- [Index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Dependencies](dependencies.md)
- [Business rules](business-rules.md)
- [Control catalog](control-catalog.md)
- [Configuration settings](configuration.md)
- [API reference](api/index.md)

## 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
