SAIF.Presentation.Web.Core.Infragistics111 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/.
Operation catalog¶
| Operation | Intent | Trigger | Inputs | Outputs | Rules |
|---|---|---|---|---|---|
| Initialize page (session ping + control reset) | Wire session keep-alive and normalize control back colors on page load | ASP.NET Init/Load lifecycle of a page deriving from AppViewPageBase |
EnableSessionPing, CallResetBackcolor, client classification |
Registered client scripts; reset control CSS classes | BR-CORE-001, BR-CORE-002, BR-CORE-003, BR-CORE-004 |
| Reset control back colors | Normalize CSS back-color classes across a control tree | Called from Page_Load or directly by consuming pages |
Root System.Web.UI.Control |
Mutated CssClass values across the control tree |
BR-CORE-005, BR-CORE-006, BR-CORE-007, BR-CORE-008 |
| Protect / unprotect a control | Make a field read-only/disabled, or reverse that transformation | Consuming page marks a field read-only, editable, or error-flagged | Target Control |
Mutated CssClass, ReadOnly, Enabled, Visible (and, for drop-downs, a substituted text box) |
BR-CORE-009, BR-CORE-010 |
| Apply saved grid preferences | Re-apply a user's saved column, sort, and size layout to a grid | Consuming page rendering a grid | Grid instance, optional size div, m_controller.Model.Preferences |
Reordered/resized grid columns, applied sort, applied grid height/width | BR-CORE-011, BR-CORE-012, BR-CORE-013 |
| Save / clear grid preferences | Persist or remove a user's grid layout preferences | User saves or resets a grid layout | Grid instance, IncludeSort flag, optional height/width, SizeOnly flag |
Persisted or removed preference entries | BR-CORE-014, BR-CORE-015, BR-CORE-016 |
| Resolve navigation and authorized menu context | Load and query a user's authorized menu items and current-page navigation state | Construction of a NavigationContext for a signed-in user, then per-request navigation queries |
User ID, MENU_ENVIRONMENT app setting, request path/URL |
clsMenuAuthorizedItem instances, item sequence numbers, menu-membership booleans |
BR-CORE-017, BR-CORE-018, BR-CORE-019, BR-CORE-020, BR-CORE-021, BR-CORE-022, BR-CORE-023 |
| Send mail through the legacy mail service | Dispatch outbound mail (with optional attachment) via the legacy SAIF SOAP mail service | Consuming applications/models call SendMail / SendMailWithAttachment |
To, from, subject, optional body, optional attachment | Mail dispatched by the remote service | BR-CORE-024 |
| Open an e-mail compose window from the browser | Launch a client-side mailto: compose window |
Consuming page action | Recipient, optional CC, subject, body | Registered client script opening a mailto: window |
BR-CORE-025, BR-CORE-026 |
| Stream a file download to the browser | Deliver an already-created file to the browser as a download | Consuming page requests a download | Virtual file name, owning AppViewPageBase |
HTTP response carrying the file as an attachment | BR-CORE-027 |
| Set client-side focus | Focus (and optionally select) the correct client-side element for a control | Master page PreRender, or explicit NavigationManager use |
FocusControl property, Session("focuscontrol") |
Registered startup script focusing the target control | BR-CORE-028, BR-CORE-029, BR-CORE-030, BR-CORE-031 |
| Load a drop-down list | Bind a list control or grid column to a data source with an optional blank entry | Consuming page binding a list control | Target list control/grid column, data source, value/text fields, DDLAddItems mode |
Populated list control or grid drop-down editor provider | BR-CORE-032 |
| Grid client-side interaction helpers | Place the user in a specific grid cell after a postback | Consuming page needs a post-postback grid focus | Page, grid ID, target row/record, column key |
Registered client scripts targeting the Infragistics client-side grid API | BR-CORE-033 |
| Enable or disable a page or control subtree | Switch a page or control subtree between read and edit modes | Consuming page toggles read/edit mode | Control, Page, or SAIFMenuTop.clsMenuButton; enable flag |
Enabled/disabled controls | BR-CORE-034 |
| Nested master page and control resolution | Locate a control that lives in an ancestor master page | Consuming page/control needs an ancestor-master control | Page, control ID, optional content placeholder ID |
MasterPage or Control reference |
BR-CORE-035, BR-CORE-036, BR-CORE-037 |
| Validate numeric menu context | Determine whether a postback carries a valid numeric menu context value | Controller processing a postback | Control-value Hashtable, menu control name |
Boolean |
BR-CORE-038, BR-CORE-039 |
| Clean text for output | Sanitize raw text before it reaches e-mail, reports, or mailto: links |
Called before sending text to e-mail, reports, or mailto: links |
Raw text | Sanitized text | BR-CORE-040, BR-CORE-041, BR-CORE-042 |
Process flow diagram¶
The following diagram visualizes the primary operational flow across operations.
flowchart TD
Start([Page request]) --> Init["AppViewPageBase.Page_Init<br>Initialize page"]
Init --> Load["Page_Load"]
Load --> Ping["Session ping<br>(if enabled and not external)"]
Load --> Reset["Reset control back colors"]
Load --> Grid["Apply saved grid preferences"]
Grid --> User{"User edits grid<br>and saves layout?"}
User -->|Yes| Save["Save / clear grid preferences"]
Load --> Nav["Resolve navigation and<br>authorized menu context"]
Load --> Focus["Set client-side focus"]
User -->|Sends mail| Mail["Send mail through<br>the legacy mail service"]
User -->|Downloads file| Download["Stream a file download<br>to the browser"]
Failure and edge-case behavior¶
- Session-ping registration is a no-op after the first call in a page lifecycle (registered script block check), so repeated
Loadevents never duplicate the script. - Client control protection (
ProtectItem) absorbsDropDownList-to-text-box substitution failures in aTryblock rather than raising to the caller. SendMail/SendMailWithAttachmentare declaredAs Booleanbut never assign a return value, so callers always observeFalseregardless of whether the mail was actually dispatched.*ClearPreferencescallsPreferences.Save()twice in succession in both theUltraWebGridandWebDataGridoverloads — a redundant call with no functional effect beyond the extra round trip.*- Client-side focus scripts are wrapped in
try{...}catch(e){}so a missing DOM element never breaks page rendering.
Related documentation¶
- Index
- Overview
- Architecture
- Dependencies
- Business rules
- Configuration
- Security and authorization
- API reference
Sources¶
SAIF.Presentation.Web.Core.Infragistics111/AppViewPageBase.aspx.vbSAIF.Presentation.Web.Core.Infragistics111/AppViewMasterPageBase.vbSAIF.Presentation.Web.Core.Infragistics111/clsAppControllerBase.vbSAIF.Presentation.Web.Core.Infragistics111/clsControlManager.vbSAIF.Presentation.Web.Core.Infragistics111/clsMailMessage.vbSAIF.Presentation.Web.Core.Infragistics111/clsNestedMaster.vbSAIF.Presentation.Web.Core.Infragistics111/clsStringUtilities.vbSAIF.Presentation.Web.Core.Infragistics111/NavigationContext.vb