SAIF.Presentation.Web.Binding.Infragistics103 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/.
Operation catalog¶
| Operation | Intent | Trigger | Inputs | Outputs | Rules |
|---|---|---|---|---|---|
| Register and initialize a control binding | Register a control ↔ business-object property binding | Page/control developer code calling an Add() overload |
Control instance, bound object/collection, key property name, optional BindTypes/UseEvents/args |
New binder appended to m_Bindings; entry added to m_ValidationObjects |
— |
| Object to control data push | Push business-object values into bound controls | Explicit DataBind() call, or automatic from OnPreRender when AutoBind = True |
Current m_Bindings, each binder's m_BindSource |
Control UI state updated to reflect object property values | — |
| Control to object data pull | Pull control values back into business-object properties | Explicit BindToObject() call, or as the first step of Validate()/RefreshValidation() |
inAllControls flag, each binder's current control value |
Business-object property values updated from control state | — |
| Validate bound controls | Aggregate validation errors and apply error/valid formatting | Explicit Validate()/RefreshValidation() call, typically before save/submit |
m_Bindings, m_ValidationObjects |
Overall valid/invalid result, populated error collection, control CSS formatting, ErrorLabel/SAIFMessage text |
BR-BIND-001, BR-BIND-002, BR-BIND-003, BR-BIND-004, BR-BIND-005 |
| Custom validator registration | Register a validation rule not tied 1:1 to a control binding | Page code calling AddCustomValidator(target), AddCustomValidator(target, keyProperty, propertyValidator), or AddCustomValidator(control, target, validationMethod) |
Bound target object, optional key property + PropertyValidator delegate, optional control + CustomValidator delegate |
A clsCustomValidator binder appended via AddBinder() |
— |
| Dual binder registration | Bind a control's displayed value to one object/property while validating against another | Page code calling AddDualBinder(control, controlType, bindObject, bindProperty, validationObject, validationProperty, [args], [bindType]) |
Control, CustomBindingControls enum value, bind object/property, validation object/property, optional args |
Configured binder appended via AddBinder() with dual-binding state set |
— |
| Grid/DDL live data-source update | Refresh a grid or dropdown's data source after initial binding | Explicit Update(UltraWebGrid, IEnumerable), Update(WebDataGrid, IEnumerable), or Update(DropDownList, Object) call |
Control instance, new IEnumerable data source |
Matching binder's BindSource updated; control refreshed via ObjectToControl() |
— |
Process flow diagram¶
The following diagram visualizes the primary operational flow across operations.
flowchart TD
Start([Page_Load]) --> Register[Register control binding via Add]
Register --> Push[DataBind: object to control push]
Push --> UserEdits[User edits controls]
UserEdits --> Submit{Submit/Save clicked?}
Submit -->|Yes| Validate[Validate: control to object pull + error check]
Validate --> Valid{All bindings valid?}
Valid -->|Yes| EndOk([Proceed with save])
Valid -->|No| EndErr([Display aggregated errors])
Submit -->|No, data source changed| Update[Grid/DDL data-source update]
Update --> Push
Inherited operations and processes¶
No inherited operations were found — this library's operations are implemented locally and the only cross-library call is the bound business object's own IDataErrorInfo/IsValid members (defined in SAIF.BOF.Framework, which is excluded/undocumented for this run and treated as an external framework call, not traced further).*
Failure and edge-case behavior¶
- A target property that cannot be converted during
ObjectToControl()(NotSupportedException) leaves the control unset; no exception propagates to the caller.* clsTextBoxBinder.ControlToObjectsilently swallows type-conversion exceptions (emptyCatchblock); a failed conversion leaves the object property unchanged and is not surfaced.*Update(UltraWebGrid, IEnumerable),Update(WebDataGrid, IEnumerable), andUpdate(DropDownList, Object)re-register the found binder viaAddBinder(), which always appends rather than replaces an entry inm_Bindings— a potential duplicate-binder side effect on repeated data-source updates.*
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.
Related documentation¶
Sources¶
SAIF.Presentation.Web.Binding.Infragistics103\clsObjectBindManager.vbSAIF.Presentation.Web.Binding.Infragistics103\clsObjectBinderbase.vbSAIF.Presentation.Web.Binding.Infragistics103\clsCustomValidator.vb