Skip to content

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

This page is the operation catalog and cross-operation hub for this library. Each operation's detailed, step-by-step logic lives in its own page under operations/. Operations here are control-level rendering and behavior processes; no operation performs data access, and none delegates to another repository library except where noted.

Operation catalog

Operation Intent Trigger Inputs Outputs Rules
Render the site banner Render the SAIF site banner from XML-defined content, honoring internal/external visibility. ASP.NET page lifecycle invokes Render on a BannerControl instance hosted on a page. PrintPageTitle, ShowInternalDisplayBanner, DisplayBannerLogout, resolved /Resources/SiteBanner.xml content. HTML banner markup (print and/or display banner) written to the response output stream. BR-V2-001, BR-V2-004, BR-V2-007
Establish banner defaults Establish the environment-driven defaults that the render step depends on. Called from OnInit when the BannerControl is not in design mode. AppGlobal.EnvironmentService.IsClientExternal, the current HttpContext, the template source directory. Internal/insider flag, default link visibility flags, resolved banner path, LoggingIn flag. BR-V2-015, BR-V2-017
Resolve internal banner visibility Centralize the internal/external visibility decision for the display banner. Read whenever Render needs to decide whether to emit the display banner. Insider/external classification, ShowInternalBanner ViewState entry. Boolean indicating whether the display banner should render. BR-V2-019, BR-V2-020
Render a control in read-only mode Swap an interactive input control for static, read-only markup while preserving posted state. ASP.NET page lifecycle invokes Render on the control. ReadOnly ViewState entry, TextAlign, control style/CSS attributes. Either the interactive base control markup, or static read-only markup (image + label). BR-V2-021, BR-V2-022, BR-V2-023, BR-V2-024
Bind and render a drop-down list Support enum-sourced binding and a read-only rendering mode for the drop-down. Host page calls DataBind, or the ASP.NET page lifecycle invokes Render. EnumDatasource, MapUnderscore, ReadOnly, ValueText, control width/style. Populated list items on bind; interactive drop-down or read-only textbox markup on render. BR-V2-027, BR-V2-030, BR-V2-036
Display a status message Display a status/validation message with an icon selected from message-text keywords. ASP.NET page lifecycle (Init, CreateChildControls, RenderControl) for a SAIFMessage instance. Text, DisplayImage (SAIFMessage.Images). A one-row HTML table containing a status icon and a label. BR-V2-037, BR-V2-042, BR-V2-043, BR-V2-044
Collapse/expand a panel Provide a collapsible, titled panel whose expand/collapse state survives postback. Control construction, CreateChildControls, and postback for a SAIFPanel instance. PanelState, hidden-field posted value. Header, hidden state field, and content panel markup with the correct display style. BR-V2-047, BR-V2-048, BR-V2-049, BR-V2-051
Build and fill the conditions grid Provide a pre-built, reusable grid panel for displaying medical-conditions-shaped data. CreateChildControls on first use; Fill when the host page has a CollectionBase to display; OnPreRender on every render. Caller-supplied System.Collections.CollectionBase. A SAIFPanel-hosted, explicitly-columned GridView titled "Medical Conditions". BR-V2-052, BR-V2-053, BR-V2-054
Prevent duplicate submission Block a user from submitting the same form twice via rapid repeated clicks. OnLoad and Render for a OneClickSubmit button instance; client click for the guard script. CssClass (optional). A submit button whose client click is guarded against duplicate submission. BR-V2-058, BR-V2-059, BR-V2-060
Render the multi-select list Render a drop-down multi-select list backed by a checkbox list. CreateChildControls and DataBind for a MultiListControl instance. IsTextEditable, ListDatasource, TextDatasource, WildCardItem. A composite textbox + arrow image button + checkbox list control. BR-V2-061, BR-V2-063, BR-V2-064
Manage tabs Add, select, style, sort, and persist a collection of navigation tabs. Host page calls AddTab/InsertTab; CreateChildControls for SAIFTabBar; postback for view-state persistence. Tab text, client ID, div ID, selected/enabled/visible flags, access key, width, Mode. An ordered tab collection, rendered tab links/bar, and selection change events. BR-V2-066, BR-V2-069, BR-V2-072, BR-V2-075
Control-manager enableability helpers Expose a lightweight attribute-based mechanism for excluding controls from bulk enable/disable operations. Called by other controls in this library (for example SAIFMessage) and by clsControlManager in SAIF.Presentation.Web.Core.Infragistics111. A target Control, an enableable Boolean. The ControlManagerEnableable string attribute on the target control; a Boolean enableability check result. BR-V2-078, BR-V2-079
Grid rendering and row-click wiring Provide a styled GridView with accessible markup and optional client-side row-click behavior. Control construction, Init, RowDataBound, and PreRender for a SAIFGrid instance. DataKeyField, bound data items. Styled grid markup with an accessible header and, when configured, client-side row-click attributes. BR-V2-081, BR-V2-083, BR-V2-085
Set initial page focus Set the browser focus to a named control when the page loads. ASP.NET page lifecycle invokes Render on a FocusManager instance. BoundControlId. A registered startup script that focuses the bound control, or no output. BR-V2-086, BR-V2-088
Render the alphanumeric filter bar Provide an A-Z-plus-numeric filter bar that the host page can use to filter its data. CreateChildControls for a SAIFAlphaNumericLinkControl instance; user click on a rendered link. None (fixed A-Z + Number range). One SAIFLinkButton per letter plus a Number link; LinkClicked event carrying the clicked value. BR-V2-089, BR-V2-091
Activity indicator and form disabling Provide a consistent activity-indicator and form-disabling UX across the three action/input controls. Control initialization for SAIFButton, SAIFComboBox, and SAIFListBox; client click/change events. EnableIndicator, DisableFormControlsOnClick/DisableFormControlsOnChange. CSS class selection, registered client script include, client-side form-disable signal. BR-V2-092, BR-V2-093
Multi-line character counter Add an optional live character counter to multi-line, length-limited textboxes. Init, CreateChildControls, and RenderControl for a SAIFTextBox instance. TextMode, MaxLength, ShowCharacterCounter, Visible. The base textbox, optionally followed by a character-counter panel and a SaifMaxLength attribute. BR-V2-096, BR-V2-097
Hover help Render a hover-triggered help icon with a positioned pop-up panel. Control initialization and rendering for a SAIFHoverHelp instance. HelpText, PanelWidth, PopupPosition. A help icon and a positioned pop-up panel containing HelpText. BR-V2-100, BR-V2-101

Process flow diagram

The following diagram visualizes how a page-hosted control set typically renders: layout/navigation controls establish structure, data-entry and display controls render within them, and feedback controls surface the result.

flowchart TD
    Start([Page Init/Load]) --> Chrome[Render banner / panel / tab navigation]
    Chrome --> Entry[Render data-entry and display controls]
    Entry --> Action{User action?}
    Action -->|Submit| Guard[OneClickSubmit / activity indicator guard]
    Action -->|Filter/select| Nav[SAIFAlphaNumericLinkControl / SAIFTabs event]
    Guard --> Postback([Postback])
    Nav --> Postback
    Postback --> Feedback[Render SAIFMessage status]

Failure and edge-case behavior

  • ConditionsGrid.CreateChildControls/Fill swallow exceptions silently (BR-V2-057).
  • SAIFMessage.RenderControl writes the exception message, source, and stack trace into the rendered page if rendering fails.
  • SAIFDropDownList.Render retries once with the selection cleared if the base render throws (BR-V2-035).
  • FocusManager.Render and BannerControl.Render both render nothing rather than raising an error when their target is unresolvable (BR-V2-088, BR-V2-003).

Sources

  • SAIF.Presentation.Web.Controls.V2/Banner.vb
  • SAIF.Presentation.Web.Controls.V2/SAIFCheckBox.vb
  • SAIF.Presentation.Web.Controls.V2/SAIFDropDownList.vb
  • SAIF.Presentation.Web.Controls.V2/SAIFMessage.vb
  • SAIF.Presentation.Web.Controls.V2/SAIFPanel.vb
  • SAIF.Presentation.Web.Controls.V2/ConditionsGrid.vb
  • SAIF.Presentation.Web.Controls.V2/OneClickSubmitControl.vb
  • SAIF.Presentation.Web.Controls.V2/MultiListControl.vb
  • SAIF.Presentation.Web.Controls.V2/SAIFTabs.vb
  • SAIF.Presentation.Web.Controls.V2/mdlUtilities.vb
  • SAIF.Presentation.Web.Controls.V2/SAIFGrid.vb
  • SAIF.Presentation.Web.Controls.V2/FocusManager.vb
  • SAIF.Presentation.Web.Controls.V2/SAIFAlphaNumericLinkControl.vb
  • SAIF.Presentation.Web.Controls.V2/SAIFButton.vb
  • SAIF.Presentation.Web.Controls.V2/SAIFTextBox.vb
  • SAIF.Presentation.Web.Controls.V2/SAIFHoverHelp.vb