---
title: clsDropDownController.ListItem
summary: API reference for clsDropDownController.ListItem.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-08-17
library: SAIF.Presentation.Web.Controls.Infragistics111
reference_type: package
---

# clsDropDownController.ListItem

`clsDropDownController.ListItem` is a public nested data-holder class used exclusively by `clsDropDownController` to carry a single flattened code/description/parent-key triple. `DataBind` populates one `ListItem` per source-collection entry into the `l1`/`l2` `ArrayList`s, and `GenerateJavaScript` reads those fields to emit the `switch`/case client script that drives the grid drop-down cascade ([BR-CTL-005](../../business-rules.md#br-ctl-005-only-string-convertible-properties-populate-generated-lists)).

## Purpose
- Hold the string-converted value (`id`), display text (`desc`), and — for child list entries — the parent grouping key (`key`) extracted from a consumer's source item by `clsDropDownController.DataBind`.

## Context
- Namespace: `SAIF.Presentation.Web.Controls.V2` (nested within `clsDropDownController`)
- Assembly/package: `SAIF.Presentation.Web.Controls.Infragistics111` (packaged as source into `SAIF.BOF.Presentation.Web.Infragistics111`)
- Base class: none (implicitly `System.Object`)

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| `desc` | `Public desc As String` | The display text projected from the source item's `List1Display`/`List2Display` property; emitted as the visible option text in the generated `vListFilter` entries. |
| `id` | `Public id As String` | The value/code projected from the source item's `List1Code`/`List2Code` property; used both as the `switch` case label (for `l1` entries) and as the stored option value (for `l2` entries). |
| `key` | `Public key As String` | For child (`l2`) entries only, the parent code projected from the source item's `List2Key` property; matched case-insensitively against the parent `id` to decide which child options belong under each parent case ([BR-CTL-002](../../business-rules.md#br-ctl-002-case-insensitive-parent-child-key-match)). |

## Behavioral notes
- `key` is left `Nothing` on `l1` entries (it is only populated during the `List2` projection loop), and on any `l2` entry whose source item lacks a string-convertible `List2Key` property; a `Nothing` `key` causes a `NullReferenceException` when `GenerateJavaScript` calls `.ToUpper` on it.*
- `id`/`desc` remain `Nothing` for a source item whose corresponding code/display property is not string-convertible, since the projection loop in `DataBind` skips assignment in that case ([BR-CTL-005](../../business-rules.md#br-ctl-005-only-string-convertible-properties-populate-generated-lists)).

## Constraints and usage notes
- Instances are created and populated only inside `clsDropDownController.DataBind`; consumers do not construct `ListItem` directly in normal use.*

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

## Sources
- `SAIF.Presentation.Web.Controls.Infragistics111/clsDropDownController.vb`
