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

# ModalGridCustomizer.ColumnVisibilityOverride

`ColumnVisibilityOverride` is a public, designer-expandable property class nested inside [ModalGridCustomizer](ModalGridCustomizer.md). It groups the two semicolon-delimited column-key override lists that the page author uses to lock certain columns permanently visible or permanently hidden, exposed on the parent control through its `ColumnVisiblity` property and rendered as an expandable sub-property group in the Visual Studio designer via `ExpandableObjectConverter`.

## Purpose
- Carries the `AlwaysVisibleColumns` and `AlwaysHiddenColumns` override lists from the designer/markup down to the `InfragisticsGridCustomizer` constructor, which uses them to assign each column's [VisiblityModes](VisiblityModes.md). ([BR-AJAX-028](../../business-rules.md#br-ajax-028-always-visible-or-always-hidden-columns-cannot-be-changed))
- Presents both lists as a single expandable "ColumnVisiblity" designer property group (via `TypeConverter(GetType(ExpandableObjectConverter))`), rather than two flat top-level properties, for a cleaner Properties-window experience.

## Context
- Namespace: `SAIF.Presentation.Web.Controls.V2.AJAX`
- Assembly/package: `SAIF.Presentation.Web.Controls.AJAX.Infragistics111` (packaged in `SAIF.BOF.Presentation.Web.Infragistics111`)
- Declared as a nested type of `ModalGridCustomizer`; exposed on the parent control through the `ColumnVisiblity` property (`PersistenceMode.InnerProperty`).
- Decorated with `<TypeConverter(GetType(ExpandableObjectConverter))>` so the ASP.NET Web Forms designer renders it as an expandable node.

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| `AlwaysVisibleColumns` | `Property AlwaysVisibleColumns As String` (default `""`) | Semicolon-delimited grid column keys that are always shown, checked, and disabled in the customization popup — never toggleable by the user. ([BR-AJAX-028](../../business-rules.md#br-ajax-028-always-visible-or-always-hidden-columns-cannot-be-changed)) |
| `AlwaysHiddenColumns` | `Property AlwaysHiddenColumns As String` (default `""`) | Semicolon-delimited grid column keys that are always hidden and omitted entirely from the customization popup's checkbox list. ([BR-AJAX-028](../../business-rules.md#br-ajax-028-always-visible-or-always-hidden-columns-cannot-be-changed), [BR-AJAX-032](../../business-rules.md#br-ajax-032-always-hidden-columns-are-not-offered-to-the-user)) |

## Behavioral notes
- Both lists are passed unchanged into `InfragisticsGridCustomizer.New`, which validates that every listed column key actually exists on the target grid and throws `ApplicationException` if not. ([BR-AJAX-024](../../business-rules.md#br-ajax-024-every-override-column-must-exist-on-the-target-grid))
- Setting the same column key in both `AlwaysVisibleColumns` and `AlwaysHiddenColumns` is not validated against here; `InfragisticsGridCustomizer.InitializeColumnList` resolves ambiguity by checking `AlwaysVisibles` before `AlwaysHiddens`.*

## Constraints and usage notes
- Column keys in both lists must exactly match a column key present on the target `UltraWebGrid`, or construction of the underlying `InfragisticsGridCustomizer` fails. ([BR-AJAX-024](../../business-rules.md#br-ajax-024-every-override-column-must-exist-on-the-target-grid))

> **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.AJAX.Infragistics111/ModalGridCustomizer.vb`
