---
title: clsDropDownController.ListItem
summary: API reference for the public nested type ListItem.
status: draft
owner: SAIF Documentation Team
last_reviewed: 2026-08-17
library: SAIF.Presentation.Web.Controls.Infragistics103
reference_type: package
---

# clsDropDownController.ListItem

`ListItem` is a public nested class declared inside `clsDropDownController` (`Public Class ListItem`). It is a plain data-transfer object used to stage reflection-extracted values from `List1`/`List2` data-source items during `DataBind`, before the cascading client-side filter script is generated from those staged values ([BR-5](../../business-rules.md#br-5-cascading-dropdown-filters-column2-options-by-column1-key)).

## Purpose
- Hold a single data-source item's code/value, display text, and (for `List2` items only) linking key, extracted via reflection using the property names configured on the owning `clsDropDownController` (`List1Code`/`List1Display`/`List2Code`/`List2Display`/`List2Key`).
- Serve as the element type of the owning control's `l1` and `l2` `ArrayList` staging collections, consumed by `GenerateJavaScript` to build the `BeforeEdit{Column2.Key}` client-side filter function.

## Context
- Namespace: `SAIF.Presentation.Web.Controls.V2`
- Declaring type: [`clsDropDownController`](clsDropDownController.md) (public nested class)
- Assembly/package: `SAIF.BOF.Presentation.Web.Infragistics103` (source bundled into this package)*

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| `desc` | `Public desc As String` | Display text extracted via reflection using `List1Display`/`List2Display`, shown in the client-side dropdown options. |
| `id` | `Public id As String` | Code/value extracted via reflection using `List1Code`/`List2Code`. For `l1` items, this is the `case` label matched against the current row's Column1 value; for `l2` items, this is the value half of each `vListFilter` entry. |
| `key` | `Public key As String` | Linking key extracted via reflection using `List2Key` (only populated for `List2`-derived `ListItem`s). Compared against a `List1`-derived `ListItem.id` (`item2.key.ToUpper = item1.id.ToUpper`) to decide which `List2` entries belong under a given `List1` value ([BR-5](../../business-rules.md#br-5-cascading-dropdown-filters-column2-options-by-column1-key)). |

## Behavioral notes
- All three fields are public instance fields (not properties) with no accessors or validation.
- If no `TypeConverter` to `String` is found for the corresponding reflected property on the source data item, the field is silently left as its default (blank) value rather than raising an exception.
- `key` is left at its default (blank) value for `ListItem` instances created from `List1` items, since only the `List2` iteration in `DataBind` sets it.

## Constraints and usage notes
- Not intended for direct use by consuming pages; instantiated and populated only internally by `clsDropDownController.DataBind`.

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