SAIF.Presentation.Web.Controls.Infragistics111 business rules
This page captures business rules enforced by this library. All rules below are presentation/formatting rules; none are policy, claim, or premium rules.
BR-CTL-001: Filter child drop-down by parent value
Field
Value
Statement
The child column's drop-down list must show only the options associated with the parent column's current cell value.
Trigger
User enters edit mode on a grid cell.
Enforcement
clsDropDownController.GenerateJavaScript (emitted switch(catCell) and key guard), wired via BeforeEnterEditModeHandler.
Outcome
Child value list is replaced with the filtered subset before editing begins.
Source
SAIF.Presentation.Web.Controls.Infragistics111/clsDropDownController.vb
BR-CTL-002: Case-insensitive parent-child key match
Field
Value
Statement
Parent-to-child association is matched case-insensitively on the child item's key property.
Trigger
Script generation during DataBind.
Enforcement
clsDropDownController.GenerateJavaScript (item2.key.ToUpper = item1.id.ToUpper).
Outcome
Child options group under the parent code regardless of letter case.
Source
SAIF.Presentation.Web.Controls.Infragistics111/clsDropDownController.vb
BR-CTL-003: Cascade handler name derived from child column key
Field
Value
Statement
The generated cascade handler is named BeforeEdit plus the child column key, so multiple controllers on one page do not collide.*
Trigger
DataBind / script generation.
Enforcement
clsDropDownController.DataBind and GenerateJavaScript.
Outcome
Each controlled column gets a uniquely named handler.
Source
SAIF.Presentation.Web.Controls.Infragistics111/clsDropDownController.vb
BR-CTL-004: Explicit value and display members required for cascaded columns
Field
Value
Statement
Both cascaded columns must be bound with an explicit value member and display member supplied by the consumer.
Trigger
DataBind.
Enforcement
clsDropDownController.DataBind (ValueList.ValueMember / DisplayMember assignment).
Outcome
Grid cells display the description while storing the code.
Source
SAIF.Presentation.Web.Controls.Infragistics111/clsDropDownController.vb
BR-CTL-005: Only string-convertible properties populate generated lists
Field
Value
Statement
Only source properties whose type has a converter to System.String contribute to the generated list.
Trigger
DataBind projection loops.
Enforcement
clsDropDownController.DataBind (converter.CanConvertTo(Type.GetType("System.String"))).
Outcome
Non-string-convertible members are skipped rather than failing the bind.
Source
SAIF.Presentation.Web.Controls.Infragistics111/clsDropDownController.vb
BR-CTL-006: Generated script values are not encoded
Field
Value
Statement
Item codes and descriptions are emitted into JavaScript string literals without encoding.**
Trigger
Script generation.
Enforcement
clsDropDownController.GenerateJavaScript.
Outcome
A value containing a quote or script terminator would break or alter the emitted script; treat as an injection risk pending review.
Source
SAIF.Presentation.Web.Controls.Infragistics111/clsDropDownController.vb
BR-CTL-007: Client script wiring skipped in design mode
Field
Value
Statement
Client-script wiring must not execute at design time.
Trigger
Control Init / PreRender in the Visual Studio designer.
Enforcement
SAIFWarp (If Not DesignMode).
Outcome
Designer rendering is unaffected by runtime scripts.
Source
SAIF.Presentation.Web.Controls.Infragistics111/SAIFWarp.vb
BR-CTL-008: Each shared script block registered once per page
Field
Value
Statement
Each shared client script block is registered at most once per page.
Trigger
Control Init / PreRender.
Enforcement
SAIFWarp (IsClientScriptBlockRegistered / IsStartupScriptRegistered guards), SAIFWebDateTimeEdit.
Outcome
Multiple instances of the control on one page emit one copy of each script.
Source
SAIF.Presentation.Web.Controls.Infragistics111/SAIFWarp.vb, SAIF.Presentation.Web.Controls.Infragistics111/SAIFWebDateTimeEdit.vb
BR-CTL-009: Focus target carried to client in a hidden field
Field
Value
Statement
The control that should regain focus after an async refresh is carried to the client in a hidden field named <ControlID>_FOCUS.
Trigger
CreateChildControls and RenderContents.
Enforcement
SAIFWarp.CreateChildControls, SAIFWarp.RenderContents.
Outcome
Client script can resolve and focus the intended control after refresh.
Source
SAIF.Presentation.Web.Controls.Infragistics111/SAIFWarp.vb
BR-CTL-010: Async failures above severity threshold redirect to the error page
Field
Value
Statement
Asynchronous callback failures above severity flags > 1 redirect the browser to the central error page /weberror/processError.aspx.
Trigger
Infragistics panel client Error event.
Enforcement
SAIFWarp ERROR_SCRIPT via ClientSideEvents.Error.
Outcome
User is routed to the standard error screen with the message in the MSG query string.
Source
SAIF.Presentation.Web.Controls.Infragistics111/SAIFWarp.vb
BR-CTL-011: Focus restoration failures do not break the page
Field
Value
Statement
After a successful async refresh, focus restoration failures must not break the page, and a page-supplied AdditionRefreshComplete hook is invoked when present.
Trigger
Client RefreshComplete event.
Enforcement
SAIFWarp FOCUS_SCRIPT (try/catch blocks).
Outcome
Errors are swallowed; optional page hook still runs.
Source
SAIF.Presentation.Web.Controls.Infragistics111/SAIFWarp.vb
BR-CTL-012: Focusing a sentinel date clears the field
Field
Value
Statement
Focusing a date editor whose displayed value is a sentinel date clears the field for entry.
Trigger
Browser onfocus on SAIFWebDateTimeEdit.
Enforcement
SAIFWebDateTimeEdit SAIFWebDateTimeEdit_Focus script.
Outcome
The editor value is set to null so the user types into an empty field.
Source
SAIF.Presentation.Web.Controls.Infragistics111/SAIFWebDateTimeEdit.vb
BR-CTL-013: MinDate and MaxDate are treated as null dates
Field
Value
Statement
01/01/1901 (MinDate) and 12/31/9999 (MaxDate) are treated as null dates in the UI.
Trigger
Browser onfocus on SAIFWebDateTimeEdit.
Enforcement
SAIFWebDateTimeEdit client script literal comparison.
Outcome
Sentinel dates are never presented as user-entered data.
Source
SAIF.Presentation.Web.Controls.Infragistics111/SAIFWebDateTimeEdit.vb
BR-CTL-014: Empty masked field returns an empty string
Field
Value
Statement
A masked field with no user entry returns an empty string rather than the mask's literal formatting characters.
Trigger
Read of PhoneValue or TaxIdValue.
Enforcement
SAIFWebMaskEdit (RawText.Trim.Length = 0 guard; StrongTypingException catch).
Outcome
Consumers receive an empty value instead of punctuation-only text.
Source
SAIF.Presentation.Web.Controls.Infragistics111/SAIFWebMaskEdit.vb
BR-CTL-015: Phone value omits trailing extension marker when absent
Field
Value
Statement
A phone number entered without an extension must not retain the trailing extension marker x.
Trigger
Read of PhoneValue.
Enforcement
SAIFWebMaskEdit.PhoneValue.
Outcome
Stored phone value ends at the last digit.
Source
SAIF.Presentation.Web.Controls.Infragistics111/SAIFWebMaskEdit.vb
Notes
Mark inferred statements with * and unknown statements with **. Do not use bold inline confidence labels.
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.Infragistics111/clsDropDownController.vb
SAIF.Presentation.Web.Controls.Infragistics111/SAIFWarp.vb
SAIF.Presentation.Web.Controls.Infragistics111/SAIFWebDateTimeEdit.vb
SAIF.Presentation.Web.Controls.Infragistics111/SAIFWebMaskEdit.vb