Skip to content

SAIFAJAXControlAncestor

SAIFAJAXControlAncestor is the shared root of every visual control in this library — auto-binding editors, hover-help controls, and the grid customizer all inherit from it. It centralizes access to the hosting page's bindable Model (relied on by BindingManager and AutoBindControlAncestor) and a browser feature test used by controls that need Firefox-specific rendering paths.

Purpose

  • Resolves the hosting page's Model property once as RootObject, giving every descendant control a single, consistent way to reach the bound model without duplicating reflection logic. (BR-AJAX-001)
  • Provides an IsFirefox browser test intended to let descendants branch rendering for Firefox, although no descendant currently calls it.*

Context

  • Namespace: SAIF.Presentation.Web.Controls.V2.AJAX
  • Assembly/package: SAIF.Presentation.Web.Controls.AJAX.Infragistics111 (packaged in SAIF.BOF.Presentation.Web.Infragistics111)

Public members

Member Signature Purpose
RootObject ReadOnly Property RootObject As Object The hosting page's Model property value, resolved by reflection via BindingUtility.GetObjectValue(Page, "Model")
IsFirefox ReadOnly Property IsFirefox As Boolean Browser-capability test for the current request; defined but never invoked by any descendant in this library*

Behavioral notes

  • This class is MustInherit — it is never instantiated directly; it exists solely to give every descendant a common Model-resolution path and browser test.
  • RootObject is resolved through the same reflection helper (BindingUtility) used throughout the binding stack, so a missing Model property on the host page silently yields Nothing rather than an error. (BR-AJAX-005)

Constraints and usage notes

  • Base class: System.Web.UI.WebControls.CompositeControl (.NET Framework) — every control here is therefore a composite control that must implement CreateChildControls.
  • Hosting pages must expose a property literally named Model for any descendant control to resolve RootObject. (BR-AJAX-001)

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.Infragistics111/SAIFAJAXControlAncestor.vb