Skip to content

SAIF.Presentation.Web.Controls.V2 operations and processes

This library exposes UI-rendering operations rather than business transactions. This page is the operation catalog and cross-operation hub; each operation's detailed, step-by-step logic lives in its own page under operations/.

Operation catalog

Operation Intent Trigger Inputs Outputs Rules
Banner rendering and logout Render site banner chrome and handle logout Render pipeline (OnInit/Render); logout LinkButton postback AppGlobal.EnvironmentService.IsClientExternal, virtual directory name, SITEBANNER(V2).XML Banner HTML; logout redirect BR-V2-001, BR-V2-002
Collapsible panel state toggle Persist and render panel expand/collapse state Postback with hidden StateControl field Request(UniqueID & "$StateControl") Rendered header/content tree with correct display style —
Tab selection Manage tab-bar selection state and raise tab-change events Tab LinkButton click (postback) Tab collection (SAIFTabBarTabCollection or ArrayList of TabSettings) Updated selection state; TabClicked/SelectedIndexChanged events BR-V2-006
Message icon selection Auto-select status icon from message text Text property set, evaluated at render Text content DisplayImage selection; stripped "Complete:" text BR-V2-005
MultiList selection and wildcard behavior Synchronize checkbox-list selection with a semicolon-delimited text box, enforcing wildcard exclusivity CheckBoxList.SelectedIndexChanged or TextBox.TextChanged postback Selected checkbox items; typed text Updated text box value; updated item selection/enabled state BR-V2-004

Process flow diagram

The following diagram visualizes the primary operational flow across this library's control-rendering operations.

flowchart TD
    Start([Page render pipeline]) --> Init[Control OnInit / Init]
    Init --> Create[CreateChildControls / DataBind]
    Create --> Render[Render / RenderControl]
    Render --> Postback{Postback event?}
    Postback -->|Banner logout| Logout[Session.Abandon, clear cookies, redirect]
    Postback -->|Tab click| TabSel[Update tab selection state, raise event]
    Postback -->|Panel toggle| PanelSel[Update PanelState from hidden field]
    Postback -->|MultiList change| MultiSel[Sync checkbox list / text box]
    Postback -->|None| Done([Rendered HTML output])

Database interactions

None. This library contains no database access of any kind (see analysis findings — "Database interaction summary: None").

Failure and edge-case behavior

  • BannerControl/BannerControlV2 Render: if Context Is Nothing (design-time), a static placeholder banner is written; if the resolved resource path is empty, no banner is rendered at all — a silent no-op fallback, not an error.
  • SAIFPanel: no server-side validation of the posted StateControl value beyond a string comparison to "Collapsed"; any other value defaults to expanded.
  • SAIFTabs.LinkButtonClick: the BeforeSelectedIndexChanged event is cancelable via SAIFTabEventArgs.Cancel, allowing the host page to veto a tab switch before SelectedIndexChanged fires.
  • MultiListControl.LayoutControls branches CSS/positioning logic on Page.Request.Browser.Browser.ToUpper = "FIREFOX", a legacy browser-sniffing pattern that may not correctly detect modern Firefox user agents*.

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\Banner.vb
  • SAIF.Presentation.Web.Controls.V2\BannerControlV2.vb
  • SAIF.Presentation.Web.Controls.V2\SAIFPanel.vb
  • SAIF.Presentation.Web.Controls.V2\SAIFTabBar.vb
  • SAIF.Presentation.Web.Controls.V2\SAIFTabs.vb
  • SAIF.Presentation.Web.Controls.V2\SAIFMessage.vb
  • SAIF.Presentation.Web.Controls.V2\MultiListControl.vb