---
title: HoverPanel
summary: API reference for HoverPanel.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-08-17
library: SAIF.Presentation.Web.Controls.AJAX.Infragistics111
reference_type: package
---

# HoverPanel

`HoverPanel` is the base hover popup used throughout this library's help/tooltip family — [HoverLabel](HoverLabel.md), [HoverPicture](HoverPicture.md), and (through [HoverPicture](HoverPicture.md)) [HoverHelp](HoverHelp.md) all attach one of these panels to their trigger element via the AJAX Control Toolkit's `HoverMenuExtender`. It renders arbitrary, unencoded content text in an always-hidden, high-`Z-INDEX` panel that the toolkit reveals on hover. ([BR-AJAX-014](../../business-rules.md#br-ajax-014-a-hover-panel-renders-above-all-content-and-is-hidden-until-shown), [BR-AJAX-015](../../business-rules.md#br-ajax-015-hover-content-is-written-unencoded))

## Purpose
- Builds a styled popup panel and wires a `HoverMenuExtender` so it appears when the caller-supplied `TargetControlId` is hovered. ([BR-AJAX-014](../../business-rules.md#br-ajax-014-a-hover-panel-renders-above-all-content-and-is-hidden-until-shown))
- Renders `ContentText` directly into the panel's content cell without HTML encoding, allowing callers to embed markup in help/tooltip content. ([BR-AJAX-015](../../business-rules.md#br-ajax-015-hover-content-is-written-unencoded))
- Renders nothing at all when there is no content to show, avoiding empty popups. ([BR-AJAX-016](../../business-rules.md#br-ajax-016-hover-controls-render-nothing-when-there-is-no-content))

## Context
- Namespace: `SAIF.Presentation.Web.Controls.V2.AJAX`
- Assembly/package: `SAIF.Presentation.Web.Controls.AJAX.Infragistics111` (packaged in `SAIF.BOF.Presentation.Web.Infragistics111`)
- Base class: [SAIFAJAXControlAncestor](SAIFAJAXControlAncestor.md)

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| `ContentText` | `Property ContentText As String` | Raw markup/text rendered unencoded into the panel; empty suppresses all rendering ([BR-AJAX-015](../../business-rules.md#br-ajax-015-hover-content-is-written-unencoded), [BR-AJAX-016](../../business-rules.md#br-ajax-016-hover-controls-render-nothing-when-there-is-no-content)) |
| `TargetControlId` | `Property TargetControlId As String` | ID of the element that triggers this panel via the toolkit's `HoverMenuExtender` |
| `PopupPosition` | `Property PopupPosition As AjaxControlToolkit.HoverMenuPopupPosition` (default `Bottom`) | Where the popup appears relative to the trigger |
| `PanelWidth` | `Property PanelWidth As Unit` (default `300`) | Fixed width of the popup panel |

<!-- SELF-CONTAINMENT: base type is System.Web.UI.WebControls.CompositeControl via SAIFAJAXControlAncestor; the SAIFAJAXControlAncestor members are listed below as this is the nearest same-repository ancestor. -->

## Inherited public members

Members in this section are inherited from `SAIFAJAXControlAncestor` in `SAIF.Presentation.Web.Controls.AJAX.Infragistics111`. They are available on this type through inheritance.

| Member | Signature | Purpose | Origin |
| --- | --- | --- | --- |
| `RootObject` | `ReadOnly Property RootObject As Object` | The hosting page's `Model` property value | `SAIF.Presentation.Web.Controls.AJAX.Infragistics111` — `SAIFAJAXControlAncestor` |
| `IsFirefox` | `ReadOnly Property IsFirefox As Boolean` | Browser-capability test for the current request | `SAIF.Presentation.Web.Controls.AJAX.Infragistics111` — `SAIFAJAXControlAncestor` |

## Behavioral notes
- The rendered popup uses `Display: None` plus `Z-INDEX: 99999999`, so it is always the topmost element on the page whenever the toolkit reveals it. ([BR-AJAX-014](../../business-rules.md#br-ajax-014-a-hover-panel-renders-above-all-content-and-is-hidden-until-shown))
- Because `ContentText` is assigned to `TableCell.Text` directly rather than HTML-encoded, callers must ensure the text is trusted or pre-encoded; untrusted content is a cross-site-scripting exposure. ([BR-AJAX-015](../../business-rules.md#br-ajax-015-hover-content-is-written-unencoded))

## Constraints and usage notes
- Requires the AJAX Control Toolkit (`AjaxControlToolkit.dll`) at runtime for `HoverMenuExtender`/`HoverMenuPopupPosition`.
- `TargetControlId` must reference a real control ID on the same page; the toolkit extender is otherwise inert.

## Related documentation
- [Index](../../index.md)
- [Overview](../../overview.md)
- [Architecture](../../architecture.md)
- [Business rules](../../business-rules.md)
- [API reference](../index.md)

## Sources
- `SAIF.Presentation.Web.Controls.AJAX.Infragistics111/HoverPanel.vb`
