---
title: SAIFAJAXControlAncestor
summary: API reference for SAIFAJAXControlAncestor.
status: draft
owner: SAIF documentation generator
last_reviewed: 2026-08-17
library: SAIF.Presentation.Web.Controls.AJAX.Infragistics103
reference_type: package
---

# SAIFAJAXControlAncestor

`SAIFAJAXControlAncestor` is the shared root class for the AJAX display-control families in this library (auto-binding editors, hover-help/hover-panel controls, and grid-customization controls). `BindingManager` is a documented exception: it inherits directly from `System.Web.UI.WebControls.CompositeControl` rather than from this class. `SAIFAJAXControlAncestor` resolves the page-level model object once per control instance (caching it in `RootObject`) and provides a browser-detection helper, freeing every derived control from having to repeat model-lookup boilerplate.

## Purpose
- Resolves and caches the page's model object (`RootObject`, via `BindingUtility.GetObjectValue(Page, "Model")`) so derived controls can read model data without repeating the lookup.
- Provides `IsFirefox`, a simple user-agent check used by derived controls to branch client-side rendering behavior for Firefox.

## Context
- Namespace: `SAIF.Presentation.Web.Controls.V2.AJAX`
- Assembly/package: `SAIF.Presentation.Web.Controls.AJAX.Infragistics103`

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| RootObject | `Protected ReadOnly Property RootObject() As Object` | Lazily resolves and caches the page's `"Model"` object for use by derived controls |
| IsFirefox | `Protected ReadOnly Property IsFirefox() As Boolean` | Indicates whether the requesting browser identifies itself as Firefox |

## Inherited public members

Members in this section are inherited from `System.Web.UI.WebControls.CompositeControl` in the .NET Framework Base Class Library. They are available on this type through inheritance.

| Member | Signature | Purpose | Origin |
| --- | --- | --- | --- |
| ID | `Property ID As String` | The programmatic identifier assigned to this control instance | `System.Web.dll` — `System.Web.UI.Control` |
| Visible | `Property Visible As Boolean` | Controls whether this control renders on the page | `System.Web.dll` — `System.Web.UI.Control` |
| CssClass | `Property CssClass As String` | The CSS class rendered on the control's container element | `System.Web.dll` — `System.Web.UI.WebControls.WebControl` |
| CreateChildControls | `Overridable Sub CreateChildControls()` | Builds this composite control's child control tree; overridden by every derived control in this library | `System.Web.dll` — `System.Web.UI.WebControls.CompositeControl` |
| RenderContents | `Overridable Sub RenderContents(writer As HtmlTextWriter)` | Renders this composite control's markup to the response stream | `System.Web.dll` — `System.Web.UI.WebControls.CompositeControl` |
| DataBind | `Overridable Sub DataBind()` | Runs the standard ASP.NET data-binding lifecycle for this control | `System.Web.dll` — `System.Web.UI.Control` |

## Behavioral notes
- A large commented-out `ScriptManager` helper region exists in this class (AJAX-enablement helpers for classic ASP.NET AJAX) but is not part of the active implementation.

## Constraints and usage notes
- `MustInherit`: this class cannot be instantiated directly; the AJAX display-control families in this library derive from it either directly or via `AutoBindControlAncestor`. `BindingManager` is excluded from this hierarchy — it derives directly from `CompositeControl`.

## Sources
- `SAIF.Presentation.Web.Controls.AJAX.Infragistics103\SAIFAJAXControlAncestor.vb`
