SAIFPanel¶
SAIFPanel is a Panel subclass providing a collapsible content panel with a header, title, and expand/collapse image, persisting its collapse state via ViewState/a hidden field so it survives postbacks and drives which client-side collapse-expand image and content display style render on each pass.
Purpose¶
- Give consuming pages a reusable collapsible-section UI convention (header + collapse/expand toggle + content region) instead of hand-building panel chrome.
- Persist and restore expand/collapse state across postbacks via the posted
StateControlhidden-field value, per Collapsible panel state toggle.
Context¶
- Namespace:
SAIF.Presentation.Web.Controls.V2 - Assembly/package: Compiled into
SAIF.BOF.Presentation.Web.Infragistics103*
Public members¶
| Member | Signature | Purpose |
|---|---|---|
Collapseable |
Public Property Collapseable As Boolean |
Enables collapse/expand behavior (header image, hidden state field, client script); when False, the panel renders without toggle chrome. Defaults to True. |
CollapseImageURL |
Public Property CollapseImageURL As String |
Image shown when the panel is expanded (clicking it collapses the panel); defaults to /Resources/Images/Up.png. |
Content |
Public Property Content As Panel |
The inner Panel control hosting the panel's body content; consumers add their controls to this panel (declared as the control's persisted inner content). |
ExpandImageURL |
Public Property ExpandImageURL As String |
Image shown when the panel is collapsed (clicking it expands the panel); defaults to /Resources/Images/Down.png. |
PanelState |
Public Property PanelState As PanelState |
The current expand/collapse state, driving the content display style and collapse/expand image on render. |
Title |
Public Property Title As String |
Header text displayed for the panel; defaults to the control's ID. |
IsCollapsed |
Public ReadOnly Property IsCollapsed As Boolean |
Convenience read-only check for PanelState = PanelState.Collapsed. |
IsExpanded |
Public ReadOnly Property IsExpanded As Boolean |
Convenience read-only check for PanelState = PanelState.Expanded. |
New() |
Public Sub New() |
Sets the base CssClass to "SAIFPanel". |
Inherited public members¶
SAIFPanel inherits from Panel (System.Web.UI.WebControls), a framework base class rather than a documented SAIF dependency library.
| Member | Signature | Purpose |
|---|---|---|
Attributes |
Public ReadOnly Property Attributes As AttributeCollection |
Collection of arbitrary HTML attributes rendered on the panel's outer tag. |
BackImageUrl |
Public Property BackImageUrl As String |
Background image URL rendered on the panel when configured. |
CssClass |
Public Property CssClass As String |
CSS class name(s) rendered on the panel's outer tag. |
DefaultButton |
Public Property DefaultButton As String |
ID of the button triggered when the user presses Enter within the panel. |
Direction |
Public Property Direction As ContentDirection |
Text/layout direction applied to the panel's contents. |
GroupingText |
Public Property GroupingText As String |
Caption text rendered when the panel is configured as a fieldset. |
HorizontalAlign |
Public Property HorizontalAlign As HorizontalAlign |
Horizontal alignment applied to content rendered within the panel. |
ScrollBars |
Public Property ScrollBars As ScrollBars |
Scrollbar behavior used when panel content exceeds the rendered bounds. |
Style |
Public ReadOnly Property Style As CssStyleCollection |
Inline CSS style declarations rendered on the outer tag. |
Wrap |
Public Property Wrap As Boolean |
Controls whether text content wraps within the rendered panel. |
Standard Panel/Control members (ID, ClientID, Controls, Visible, DataBind, FindControl, etc.) are not re-documented here as they are unmodified framework behavior**.
Behavioral notes¶
SAIFPanel_Initrestores_PanelStatefrom the postedHttpContext.Current.Request(UniqueID & "$StateControl")value, if present, per Collapsible panel state toggle.CreateChildControlsbuilds the Header/Title/collapse-expand image/hidden state field/Content tree, applying the current_PanelStateto the initial inlinedisplaystyle and image URL.SAIFPanel_PreRenderre-syncs the collapse/expand image and hidden field to the current_PanelStateimmediately before rendering.- Actual client-side collapse/expand animation is driven by
Panel.js(not present in this project); server logic only persists and reflects state, it does not perform the visual transition itself*.
Constraints and usage notes¶
- Requires
Panel.jsto be deployed at/Resources/Scripts/Controls/Panel.jsfor interactive collapse/expand behavior. Contentmust be populated (typically via markup persistence,ParseChildren(True, "Content")) for the panel to have body content to show/hide.
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.V2\SAIFPanel.vb