Skip to content

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