Skip to content

clsUltraGridBinder

clsUltraGridBinder binds an UltraWebGrid to a business-object collection, including hierarchical bands, and drives per-cell validation highlighting via IDataErrorInfo.

Purpose

  • Assign the collection to the grid's DataSource and call the grid's own DataBind (BR-BIND-017).
  • Match grid rows to business objects by key property, recursing into hierarchical child bands via Band.BaseTableName (BR-BIND-024, BR-BIND-025).
  • Validate every row/column against IDataErrorInfo, treating grid column keys as business-object property names, and highlight invalid cells (BR-BIND-048, BR-BIND-050, see Validate a grid collection).

Context

  • Namespace: SAIF.Presentation.Web.Binding
  • Assembly/package: SAIF.Presentation.Web.Binding.Infragistics111 (ILMerged into SAIF.Presentation.Web.Infragistics111.dll)
  • Base class: clsObjectBinderBase

Public members

Member Signature Purpose
Init Public Overrides Sub Init() Subscribes to UpdateRowBatch when UseEvents is True and the bind type calls for write-back (BR-BIND-007, BR-BIND-008). Overrides clsObjectBinderBase.Init.
ObjectToControl Public Overrides Function ObjectToControl() As Boolean Assigns the bound collection to DataSource and calls DataBind() (BR-BIND-017). Overrides clsObjectBinderBase.ObjectToControl.
ControlToObject Public Overrides Function ControlToObject() As Boolean BindRow/UpdateObjectProperties walk every row (including hierarchical child rows), match each to a business object by key property, and copy each matching column's cell value back onto the object (BR-BIND-024, BR-BIND-025). Overrides clsObjectBinderBase.ControlToObject.

Inherited public members

Members in this section are inherited from clsObjectBinderBase. They are available on this type through inheritance.

Member Signature Purpose Origin
BindSource Public Property BindSource() As Object The business object (or collection) this binder reads and writes. Setting it also sets the binder's validation source unless dual binding overrides it (BR-BIND-002). SAIF.Presentation.Web.Binding.Infragistics111 — clsObjectBinderBase
BindProperty Public Property BindProperty() As String Name of the property on BindSource this binder gets/sets by reflection. SAIF.Presentation.Web.Binding.Infragistics111 — clsObjectBinderBase
FormControl Public Property FormControl() As Control The ASP.NET/Infragistics control instance this binder targets; its UniqueID is the key used by clsObjectBindManager.Binder and Update lookups. SAIF.Presentation.Web.Binding.Infragistics111 — clsObjectBinderBase
BindType Public Property BindType() As BindTypes Controls which directions data moves for this binder — ObjectToControl, ControlToObject, TwoWay, or ValidateOnly (BR-BIND-010). SAIF.Presentation.Web.Binding.Infragistics111 — clsObjectBinderBase
UseEvents Public Property UseEvents() As Boolean Whether this binder subscribes to its control's change event in Init (BR-BIND-007, BR-BIND-008). SAIF.Presentation.Web.Binding.Infragistics111 — clsObjectBinderBase
ValidationKey Friend Overridable ReadOnly Property ValidationKey() As String Computes the key under which this binder's validation object is registered — the business object's MyGuid for SAIF framework objects (via IsSAIFFrameWorkObject) or its type name otherwise (BR-BIND-004). SAIF.Presentation.Web.Binding.Infragistics111 — clsObjectBinderBase
IsSAIFFrameWorkObject Friend Overridable ReadOnly Property IsSAIFFrameWorkObject() As Boolean Walks the bind source's runtime base-class chain for the names clsBusinessBase / clsBusinessCollectionBase to decide whether framework-specific keying and validation applies (BR-BIND-061). SAIF.Presentation.Web.Binding.Infragistics111 — clsObjectBinderBase
GetObjectValueAsString Protected Function GetObjectValueAsString() As String Reads BindProperty from BindSource through TypeDescriptor/PropertyDescriptor and the property's TypeConverter, applying configured padding, for display in simple-value controls (BR-BIND-012, BR-BIND-013). SAIF.Presentation.Web.Binding.Infragistics111 — clsObjectBinderBase
SetObjectValueAsString Protected Sub SetObjectValueAsString(inValue As String) Writes a string value back onto BindProperty. Computes a padded value for PadTarget.Object but assigns the unpadded value to the property, so object-side padding has no observable effect.* SAIF.Presentation.Web.Binding.Infragistics111 — clsObjectBinderBase
GetErrors Public Overridable Function GetErrors() As Boolean Selects the validation property/source for a dual binder (otherwise the bind property/source), casts it to IDataErrorInfo, and reads Item(property) to populate ControlErrors (BR-BIND-031, BR-BIND-032, BR-BIND-033). SAIF.Presentation.Web.Binding.Infragistics111 — clsObjectBinderBase
ControlErrors Public ReadOnly Property ControlErrors() As ArrayList The list of non-blank, CRLF-split, <BR>-stripped error message fragments harvested for this binder in the current validation pass. SAIF.Presentation.Web.Binding.Infragistics111 — clsObjectBinderBase
SetControlFormat Public Sub SetControlFormat(inValid As Boolean) Applies error or valid CSS/color styling to FormControl based on control kind — errorbordercolor/errorbackcolor when invalid (BR-BIND-037, BR-BIND-038), normal/defaultbackcolor when valid, honoring an existing disabledbackcolor class (BR-BIND-039, BR-BIND-040). SAIF.Presentation.Web.Binding.Infragistics111 — clsObjectBinderBase
SetDualBinding Friend Sub SetDualBinding(inValidationSource As Object, inValidationProperty As String) Records a validation object/property distinct from the bind object/property, so the control can display one object while validating another (BR-BIND-059). SAIF.Presentation.Web.Binding.Infragistics111 — clsObjectBinderBase

Behavioral notes

  • The commented-out call to clsControlManager.GridBeginEdit in ValidateObject (noted as causing a circular reference) means FirstRowWithError/FirstColumnWithError are never actually assigned.*
  • GetErrors resets all cell formatting first (BR-BIND-044), short-circuits on a collection-level IDataErrorInfo.Error (BR-BIND-045), and otherwise validates every object/band/column, swallowing exceptions for objects that do not implement IDataErrorInfo (BR-BIND-046).

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/InfragisticsClassicControls/clsUltraGridBinder.vb