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).
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.
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).
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.
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.
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.