SAIF.Presentation.Web.Binding.Infragistics111 operations and processes¶
This page is the operation catalog and cross-operation hub for this library. Each operation's detailed, step-by-step logic lives in its own page under operations/. This library performs no database access, so the Tables and SQL columns are not applicable for any operation.
Operation catalog¶
| Operation | Intent | Trigger | Inputs | Outputs | Rules | Tables | SQL |
|---|---|---|---|---|---|---|---|
| Register a binding | Attach a control to a business-object property so the two can move data and be validated together. | Application page setup (typically Configure or Page_Load) |
A control, a business object (or collection), the target property name, an optional …BindingArgs, an optional UseEvents flag, an optional BindTypes value (default TwoWay) |
A concrete binder appended to m_Bindings; the validation object registered in m_ValidationObjects |
BR-BIND-001, BR-BIND-004 | — | — |
| Initialize binders (page load) | Restore the manager's persisted state and wire up each binder's control change-event handlers at the start of the page lifecycle. | ASP.NET Load event of the manager control |
ViewState("AutoBind"), the registered binders |
Restored AutoBind setting; control change-event handlers wired up |
BR-BIND-006, BR-BIND-007 | — | — |
| Push object values into controls (object to control) | Populate bound controls from the current business-object property values. | binder.DataBind() explicit call, or automatically on PreRender when AutoBind is True |
Registered binders and their bind sources | Controls populated with business object values | BR-BIND-010, BR-BIND-011 | — | — |
| Pull control values back into objects (control to object) | Write edited control values back onto the bound business-object properties. | An explicit BindToObject() call, the first step of Validate() / RefreshValidation(), or a control change event when UseEvents is True |
inAllControls flag; the bound controls' current values |
Updated business object properties | BR-BIND-019, BR-BIND-024 | — | — |
| Validate bound objects and report errors | Push pending control edits, trigger business-object rule evaluation, harvest and aggregate error messages, and re-style controls. | binder.Validate() (or RefreshValidation()), typically on Save |
Registered binders, registered validation objects | Boolean overall validity; populated ErrorLabel / SAIFMessage; controls re-styled; FirstControlWithError set |
BR-BIND-027, BR-BIND-029, BR-BIND-034 | — | — |
| Validate a grid collection | Validate every row (and hierarchical child row) of a bound grid collection and highlight invalid cells. | Validate() reaching a grid binder |
The bound collection, the grid's bands and columns | Cell-level red highlighting, collected error messages, activated first invalid cell | BR-BIND-044, BR-BIND-048 | — | — |
| Run a custom validator | Run application-supplied validation logic that participates in the same error pipeline as property-level errors. | Validate() / RefreshValidation() reaching a custom validator |
The validation target object, optionally a key property, and a PropertyValidator or CustomValidator delegate |
Messages appended to ControlErrors; the binder's error flag |
BR-BIND-051, BR-BIND-053 | — | — |
| Re-point a binder at a new data source | Rebind an existing grid or drop-down control to a new collection after a postback, without re-registering it through Add. |
Application replaces a grid's or drop-down's collection after a postback | The control instance and the new data source | The binder's bind source replaced and the control rebound | BR-BIND-055, BR-BIND-057 | — | — |
| Dual binding (bind one object, validate another) | Display one object on a control while validating a different object/property pair. | Application binds a control to a display object while validating a different object | Control, CustomBindingControls type selector, bind object + property, validation object + property, optional args, bind type |
A binder with distinct bind and validation sources | BR-BIND-058, BR-BIND-059 | — | — |
| Look up a binder by control | Find the binder registered for a specific control so it can be rebound or inspected directly. | Application needs to rebind or inspect a single control | The control instance | The matching clsObjectBinderBase, or Nothing |
BR-BIND-060 | — | — |
Process flow diagram¶
The following diagram visualizes the primary operational flow across operations: a control is registered, initialized, populated, edited, written back, and validated.
flowchart TD
Start([Page Configure/Load]) --> A["Register a binding<br>Add overload registers a binder"]
A --> B["Initialize binders (page load)<br>OnLoad wires change events"]
B --> C["Push object values into controls (object to control)<br>DataBind / AutoBind pushes values"]
C --> D[User edits control]
D --> E{UseEvents?}
E -->|Yes| F[Change event runs ControlToObject immediately]
E -->|No| G["Pull control values back into objects (control to object)<br>BindToObject on demand"]
F --> H["Validate bound objects and report errors<br>Validate aggregates errors"]
G --> H
H --> I{Grid binder?}
I -->|Yes| J[Validate a grid collection]
I -->|No, custom validator| K[Run a custom validator]
J --> L([FormattedErrorMessage surfaced])
K --> L
H --> L
Inherited operations and processes¶
Operations in this section originate from base classes provided by dependency framework libraries. They are inherited or delegated, not implemented in this library.
From clsBusinessBase (SAIF.Framework.Core)¶
| Operation | Intent | Provided by | Origin | Embedded in |
|---|---|---|---|---|
| Evaluate business rules and populate broken-rules state | Runs the object's registered rules through clsRulesManager and sets IsValid / IDataErrorInfo messages accordingly.† |
clsBusinessBase |
SAIF.Framework.Core |
Validate bound objects and report errors |
Origin: This operation is defined in
SAIF.Framework.Core/clsBusinessBaseand inherited or delegated by this component. Its step-by-step logic is embedded inline (with> Origincallouts) in the consuming operation's detail page.
Failure and edge-case behavior¶
RefreshValidation()skips business-object rule re-evaluation, so it can surface stale results if called without a priorValidate()in the same postback (BR-BIND-043).clsObjectBindManager.Updatere-registers an already-registered binder, growingm_Bindingson every call and causing duplicate validation of the same binder over repeated updates.*clsTextBoxBinder.ControlToObjectand grid validation both swallow conversion/cast exceptions silently, so malformed input or non-IDataErrorInfoobjects do not crash the page but also do not surface a diagnostic (BR-BIND-021, BR-BIND-046).FirstRowWithError/FirstColumnWithErrorare declared on both the manager andclsUltraGridBinder, but their assignments are commented out (noted as avoiding a circular reference), so both properties always remainNothing.*
Related documentation¶
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. Statements marked with † were retrieved from dependency library documentation via the Legends CLI RAG service. They describe inherited behavior from the indicated origin library and should be verified if the dependency version changes.
Sources¶
- SAIF.Presentation.Web.Binding.Infragistics111/clsObjectBindManager.vb
- SAIF.Presentation.Web.Binding.Infragistics111/clsObjectBinderbase.vb
- SAIF.Presentation.Web.Binding.Infragistics111/clsCustomValidator.vb
- SAIF.Presentation.Web.Binding.Infragistics111/InfragisticsClassicControls/clsUltraGridBinder.vb