---
title: Control-manager enableability helpers
summary: Expose a lightweight attribute-based mechanism for excluding controls from bulk enable/disable operations.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-08-17
library: SAIF.Presentation.Web.Controls.V2
reference_type: package
operation_id: OP-V2-012
trigger: Called by other controls in this library (for example `SAIFMessage`) and by `clsControlManager` in `SAIF.Presentation.Web.Core.Infragistics111`.
---

# Control-manager enableability helpers

Expose a lightweight attribute-based mechanism for excluding controls from bulk enable/disable operations. Called by other controls in this library (for example `SAIFMessage`) and by `clsControlManager` in `SAIF.Presentation.Web.Core.Infragistics111`.

| Field | Value |
| --- | --- |
| **Operation ID** | OP-V2-012 |
| **Trigger** | Called by other controls in this library (for example `SAIFMessage`) and by `clsControlManager` in `SAIF.Presentation.Web.Core.Infragistics111`. |
| **Inputs** | A target `Control`, an `enableable` Boolean. |
| **Outputs** | The `ControlManagerEnableable` string attribute on the target control; a Boolean enableability check result. |
| **Primary components** | `Utilities.mdlUtilities` |
| **Entry point** | `SAIF.Presentation.Web.Controls.V2/mdlUtilities.vb` |

## Steps

1. `SetControlManagerEnableable(control, enableable)` adds the string attribute `ControlManagerEnableable` with the Boolean's string form to the target control. ([BR-V2-078](../business-rules.md#br-v2-078-enableability-expressed-as-a-control-attribute), [BR-V2-080](../business-rules.md#br-v2-080-repeated-set-calls-may-add-duplicate-attributes))
   - Repeated calls for the same control may add duplicate attributes; this is flagged as untested in the source.
2. `CanControlManagerEnableControl(control)` returns the parsed attribute value when the control has attributes and the attribute is present; otherwise it returns `True`. ([BR-V2-079](../business-rules.md#br-v2-079-no-attribute-means-enableable-by-default))
   - > **Origin**: Consumed by `clsControlManager` in `SAIF.Presentation.Web.Core.Infragistics111` (external to this library).

## Process flow

The following diagram visualizes this operation's control flow.

```mermaid
flowchart TD
	Start([SetControlManagerEnableable]) --> Add[Add ControlManagerEnableable attribute]
	Add --> Done1([Attribute set])
	Start2([CanControlManagerEnableControl]) --> Has{Attribute present?}
	Has -->|Yes| Parse[Return parsed value]
	Has -->|No| DefaultT([Return True])
```

## Failure and edge-case behavior

- No exceptional failure handling beyond the branches described in **Steps** was found in the analysis findings.*

## Related documentation
- [Operations and processes](../operations-processes.md)
- [Business rules](../business-rules.md)

> **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/mdlUtilities.vb`
