---
title: SAIFListBox
summary: API reference for SAIFListBox.
status: draft
owner: SAIF Documentation Team
last_reviewed: 2026-08-17
library: SAIF.Presentation.Web.Controls.V2
reference_type: package
---

# SAIFListBox

`SAIFListBox` is a `ListBox` subclass adding the same AJAX "busy indicator" client-side convention as `SAIFButton`/`SAIFComboBox`, plus registration of a page-request-manager callback so the indicator re-initializes correctly after partial (AJAX) postbacks.

## Purpose
- Give list-box selection changes a consistent "in-progress" visual indicator during AJAX partial postbacks.
- Ensure the indicator initialization script re-runs after each partial postback, not just on initial page load.

## Context
- Namespace: `SAIF.Presentation.Web.Controls.V2`
- Assembly/package: Compiled into `SAIF.BOF.Presentation.Web.Infragistics103`*

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| `DisableFormControlsOnChange` | `Public Property DisableFormControlsOnChange As Boolean` | Determines whether other form controls are disabled client-side while this list box's change postback is processed; defaults to `True`. |
| `EnableIndicator` | `Public Property EnableIndicator As Boolean` | Turns on the AJAX busy-indicator CSS class and registers the supporting client scripts; defaults to `True`. |

## Inherited public members

`SAIFListBox` inherits from `ListBox` (`System.Web.UI.WebControls`), a framework base class rather than a documented SAIF dependency library.

| Member | Signature | Purpose |
| --- | --- | --- |
| `AutoPostBack` | `Public Property AutoPostBack As Boolean` | Determines whether changing the selection immediately posts the page back to the server. |
| `Items` | `Public ReadOnly Property Items As ListItemCollection` | Collection of selectable list-box items managed by the control. |
| `Rows` | `Public Property Rows As Integer` | Visible row count of the rendered list box. |
| `SelectionMode` | `Public Property SelectionMode As ListSelectionMode` | Controls whether the list box allows single or multiple selection. |
| `SelectedIndex` | `Public Property SelectedIndex As Integer` | Index of the first selected item in the list. |
| `SelectedItem` | `Public ReadOnly Property SelectedItem As ListItem` | First currently selected item. |
| `SelectedValue` | `Public Property SelectedValue As String` | Value of the first selected item. |
| `Text` | `Public Property Text As String` | Display text of the selected item. |
| `SelectedIndexChanged` | `Public Event SelectedIndexChanged As EventHandler` | Standard selection-change event raised after postback. |

Standard `ListBox`/`Control` members (`ID`, `ClientID`, `Controls`, `Visible`, `DataBind`, `FindControl`, etc.) are not re-documented here as they are unmodified framework behavior**.

## Behavioral notes
- `SAIFListBox_Init` sets `CssClass` to `"SAIFListBox"`, or `"SAIFListBoxIndicator"` plus a `DisableFormControls` attribute when `EnableIndicator` is true.
- `RegisterClientScripts` registers `SAIF.ListBox.js` and, if a `ScriptManager` is present, an inline script that re-invokes `$(document).initSAIFListBoxes()` on the `PageRequestManager`'s `endRequest` event so the indicator wiring survives partial postbacks.

## Constraints and usage notes
- Requires `SAIF.ListBox.js` to be deployed at `/Resources/Scripts/SAIF.ListBox.js`.
- The `ScriptManager`-based startup-script re-registration only occurs when a `ScriptManager` is present on the page (i.e., in an UpdatePanel/AJAX context).


> **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\SAIFListBox.vb
