Skip to content

SAIF.Presentation.Web.Controls.AJAX.Infragistics103 business rules

This page captures business rules enforced by this library. This library defines no explicit validation/authorization rules of its own — its auto-binding controls are a generic UI mechanism that surfaces business rules owned by other libraries, and its grid customizer enforces a small set of configuration/UI rules.

BR-AJAX-001: Auto-bound controls display validation errors sourced from the bound object's IDataErrorInfo

Field Value
Statement An auto-binding control (AutoBindTextbox, AutoBindWebDateTimeEdit, AutoBindWebMaskEdit) is considered invalid whenever CType(BoundObject, IDataErrorInfo).Item(BindProperty) returns a non-empty string; the control renders a red background and the message is appended to the page's LblErrorMsg control.*
Trigger Validate() invoked after DataBind() (if AutoValidateOnDataBind) or after a value is written back via BindToObject() (if AutoValidate).
Enforcement AutoBindControlAncestor.GetErrorMessages() / AutoBindControlAncestor.Validate() (AutoBindControlAncestor.vb).
Outcome Visual error indication only; this library does not itself define what constitutes invalid data — that is determined entirely by the bound business object's own IDataErrorInfo implementation**, which resides outside this project.
Source SAIF.Presentation.Web.Controls.AJAX.Infragistics103\AutoBindControlAncestor.vb

BR-AJAX-002: "Always visible" and "always hidden" grid columns cannot be toggled by the end user

Field Value
Statement Columns configured with VisiblityModes.AlwaysVisible or AlwaysHidden are excluded from user-driven visibility changes; only columns in VisiblityModes.Normal respond to checkbox selections in InfragisticsGridCustomizer.Update/LoadColumnPreferences.*
Trigger Grid customizer initialization (New InfragisticsGridCustomizer(inTargetGrid, inAlwaysVisibleColumnKeys, inAlwaysHiddenColumnKeys)) with inAlwaysVisibleColumnKeys/inAlwaysHiddenColumnKeys parameters supplied by the hosting page/control declaration (ModalGridCustomizer.ColumnVisiblity).
Enforcement InfragisticsGridCustomizer.InitializeColumnList, LoadColumnPreferences, Update, ManipulateGrid (InfragisticsGridCustomizer.vb).
Outcome AlwaysVisible columns are always rendered as visible and their checkbox is disabled (li.Enabled = c.VisibilityMode <> VisiblityModes.AlwaysVisible); AlwaysHidden columns never appear in the checkbox list at all and are forced to ServerOnly = True.
Source SAIF.Presentation.Web.Controls.AJAX.Infragistics103\InfragisticsGridCustomizer.vb

BR-AJAX-003: Grid column-visibility override keys must exist on the target grid

Field Value
Statement Any column key listed in AlwaysVisibleColumns/AlwaysHiddenColumns must correspond to an actual column on the target UltraWebGrid.*
Trigger InfragisticsGridCustomizer construction.
Enforcement ValidateColumnVisibilitySettings throws ApplicationException with a message identifying the target grid and the missing column key (InfragisticsGridCustomizer.vb).
Outcome Hard failure (unhandled exception) rather than silent ignoring — a misconfiguration surfaces immediately during control initialization.
Source SAIF.Presentation.Web.Controls.AJAX.Infragistics103\InfragisticsGridCustomizer.vb

Notes

  • clsHelpText/clsHelpTextCollection are read-only reference-data lookup objects: no IsValid()/AddErrorMessage() business-rule enforcement was found in either class, and their CreateSQL/InsertSQL/UpdateSQL/DeleteSQL properties throw ApplicationException(BOC.Messages.InvalidSQLProperty) rather than defining executable SQL — see database tables for details.

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.AJAX.Infragistics103\AutoBindControlAncestor.vb
  • SAIF.Presentation.Web.Controls.AJAX.Infragistics103\InfragisticsGridCustomizer.vb
  • SAIF.Presentation.Web.Controls.AJAX.Infragistics103\clsHelpText.vb
  • SAIF.Presentation.Web.Controls.AJAX.Infragistics103\clsHelpTextCollection.vb