Skip to content

SAIFTabBar

SAIFTabBar is the declarative (markup-persisted) implementation of the library's two independent tab-bar implementations: consuming pages declare tabs directly in .aspx markup (ParseChildren(True, "Tabs")), and the control manages selection state, sorting, and CSS-class application for TabBar (mutually exclusive) or WizardTabBar (sequential) modes*.

Purpose

  • Render a tab bar from a markup-declared, sortable collection of SAIFTabBarTab entries.
  • Enforce mutually exclusive tab selection in standard TabBar mode (BR-V2-006), or sequential "selected + sibling" styling in WizardTabBar mode.
  • Provide bulk operations (enable/disable, show/hide) across all tabs.

Context

  • Namespace: SAIF.Presentation.Web.Controls.V2
  • Assembly/package: Compiled into SAIF.BOF.Presentation.Web.Infragistics103*

Public members

Member Signature Purpose
Mode Public Property Mode As TabBarMode Selects mutually-exclusive (TabBar) or sequential (WizardTabBar) selection/styling behavior.
AllowSelectedTabClick Public Property AllowSelectedTabClick As Boolean When False (default), clicking the already-selected tab is suppressed client-side (return false;), preventing a redundant postback.
SelectedTab Public ReadOnly Property SelectedTab As SAIFTabBarTab Returns the currently selected tab model, or Nothing if none is selected.
Item(inTabKey) (default) Default Public ReadOnly Property Item(ByVal inTabKey As String) As SAIFTabBarTab Looks up a tab by its ID via the default indexer.
Tabs Public ReadOnly Property Tabs As SAIFTabBarTabCollection The markup-persisted collection of tabs managed by this control.
TabClickedEventHandler (Delegate) Public Delegate Sub TabClickedEventHandler(ByVal t As SAIFTabBarTab) Delegate signature for the TabClicked event.
TabClicked Public Event TabClicked As TabClickedEventHandler Raised after a tab click updates selection state, passing the newly selected SAIFTabBarTab.
New() Public Sub New() Constructs the control with no non-default initialization beyond the base WebControl; the tab collection is populated later by markup parsing rather than in the constructor*.
DisableAllTabs() Public Sub DisableAllTabs() Bulk-disables every tab, so consuming pages can grey out the whole tab bar (e.g., while a dependent process is unavailable) without iterating Tabs themselves.
EnableAllTabs() Public Sub EnableAllTabs() Bulk-restores clickability of every tab, reversing DisableAllTabs() in a single call.
HideAllTabs() Public Sub HideAllTabs() Bulk-hides every tab, letting a host page collapse the entire tab bar (e.g., when no tab content applies) without per-tab visibility logic.
ShowAllTabs() Public Sub ShowAllTabs() Bulk-restores visibility of every tab, reversing HideAllTabs() in a single call.

Inherited public members

SAIFTabBar inherits from WebControl (System.Web.UI.WebControls), a framework base class rather than a documented SAIF dependency library.

Member Signature Purpose
AccessKey Public Property AccessKey As String Keyboard shortcut character used to quickly navigate focus to the rendered element.
Attributes Public ReadOnly Property Attributes As AttributeCollection Collection of arbitrary name/value HTML attributes rendered on the control's outer tag.
BackColor Public Property BackColor As Color Background color applied to the rendered outer element.
ForeColor Public Property ForeColor As Color Foreground (text) color applied to the rendered outer element.
BorderColor Public Property BorderColor As Color Border color applied to the rendered outer element.
BorderStyle Public Property BorderStyle As BorderStyle Border line style applied to the rendered outer element.
BorderWidth Public Property BorderWidth As Unit Border width applied to the rendered outer element.
CssClass Public Property CssClass As String CSS class name(s) rendered on the control's outer tag.
Enabled Public Property Enabled As Boolean Controls whether the rendered element is enabled and participates in postbacks.
Font Public ReadOnly Property Font As FontInfo Font styling applied to the rendered outer element.
Height Public Property Height As Unit Height of the rendered outer element.
Width Public Property Width As Unit Width of the rendered outer element.
Style Public ReadOnly Property Style As CssStyleCollection Inline CSS style declarations rendered on the outer tag.
TabIndex Public Property TabIndex As Short Tab order of the rendered element among focusable page elements.
ToolTip Public Property ToolTip As String Text shown as a native tooltip when hovering the rendered element.
ControlStyle Public ReadOnly Property ControlStyle As Style The Style object backing the CSS-related properties above.
RenderBeginTag / RenderEndTag Public Overridable Sub RenderBeginTag/RenderEndTag(ByVal writer As HtmlTextWriter) Writes the opening/closing outer HTML tag and its attributes/styles.

Standard WebControl/Control members (ID, ClientID, Controls, Visible, DataBind, FindControl, etc.) are not re-documented here as they are unmodified framework behavior**.

Behavioral notes

  • CreateChildControls sorts _Tabs (Order, then Text) and builds one <li><LinkButton></li> per tab, wiring each LinkButton.Click to RaiseTabClickedEvent.
  • RaiseTabClickedEvent deselects all tabs first when Mode = TabBarMode.TabBar (mutual exclusivity, BR-V2-006), then selects the clicked tab and raises TabClicked.
  • RenderControl applies Selected/SelectedSibling/Disabled/DisabledSelected CSS classes per tab based on state and Mode, and wraps rendering in a Try/Catch that writes exception details directly to the output stream on failure*.
  • See Tab selection for the full step-by-step operation shared with SAIFTabs.

Constraints and usage notes

  • Tabs are declared in markup (ParseChildren(True, "Tabs")), not added imperatively; for code-driven tab management, use SAIFTabs instead.
  • SAIFTabBar's error-handling in RenderControl surfaces raw exception details to the rendered page output, which may be unsuitable for production error handling*.

Note: Statements marked with * were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts.

Sources

  • SAIF.Presentation.Web.Controls.V2\SAIFTabBar.vb