Skip to content

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.ControlToObject silently swallows type-conversion exceptions (empty Catch block); a failed conversion leaves the object property unchanged and is not surfaced.*
  • Update(UltraWebGrid, IEnumerable), Update(WebDataGrid, IEnumerable), and Update(DropDownList, Object) re-register the found binder via AddBinder(), which always appends rather than replaces an entry in m_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.

Sources

  • SAIF.Presentation.Web.Binding.Infragistics103\clsObjectBindManager.vb
  • SAIF.Presentation.Web.Binding.Infragistics103\clsObjectBinderbase.vb
  • SAIF.Presentation.Web.Binding.Infragistics103\clsCustomValidator.vb