AppViewMasterPageBase¶
AppViewMasterPageBase is the master-page base class shared by every SAIF application chrome layout in this package. It provides typed accessors for the standard chrome controls (script manager, banner, menu, message/error labels, claim/policy headers, main UpdatePanel) so consuming master pages do not need to FindControl for them, and it owns the client-side focus mechanism that targets the correct DOM selector for whichever Infragistics or standard control type currently holds FocusControl.
Purpose¶
- Provide typed, discoverable access to the standard SAIF chrome controls instead of requiring each consuming master page to re-declare
FindControlcalls. - Determine, on
PreRender, whether aFocusControlwas set and — if so — emit a client script that focuses it using a selector appropriate to its runtime control type. (BR-CORE-028, BR-CORE-029) - Wrap the focus call in a defensive
try/setTimeout/catchso a missing DOM element never breaks page rendering. (BR-CORE-030)
Context¶
- Namespace:
SAIF.Presentation.Web.Core - Assembly/package:
SAIF.Presentation.Web.Core.Infragistics111(merged intoSAIF.Presentation.Web.Infragistics111.dllviaSAIF.BOF.Presentation.Web.Infragistics111.nuspec)
Public members¶
| Member | Signature | Purpose |
|---|---|---|
FocusControl |
Public Property FocusControl As Control |
The control that should receive client-side focus after the current page render; Nothing when no focus target is set. |
ScriptManager1 |
Public ReadOnly Property ScriptManager1 As ScriptManager |
Typed accessor for the master page's ScriptManager chrome control. |
Banner |
Public ReadOnly Property Banner As BannerControl |
Typed accessor for the standard SAIF banner chrome control. |
Menu |
Public ReadOnly Property Menu As SAIFMenu |
Typed accessor for the standard SAIF left/side navigation menu control. |
MenuTop |
Public ReadOnly Property MenuTop As SAIFMenuTop |
Typed accessor for the standard SAIF top navigation menu control. |
MessageLabel |
Public ReadOnly Property MessageLabel As SAIFMessage |
Typed accessor for the standard informational message display control. |
ErrorLabel |
Public ReadOnly Property ErrorLabel As SAIFMessage |
Typed accessor for the standard error message display control. |
MainUpdatePanel |
Public ReadOnly Property MainUpdatePanel As UpdatePanel |
Typed accessor for the master page's primary UpdatePanel, used for partial-postback script registration. |
RenderClientScripts() |
Protected Overrides Sub RenderClientScripts() |
Entry point invoked on PreRender that checks FocusControl and, if set, calls RegisterFocusControlScript. |
RegisterFocusControlScript(control) |
Protected Sub RegisterFocusControlScript(control As Control) |
Builds the control-type-specific client-side selector, wraps it in a defensive try/setTimeout/catch, and registers it as the page's startup script. |
Behavioral notes¶
- When
FocusControlisNothing,RenderClientScriptsexits immediately and no focus script is registered at all. - Selector construction branches on the control's runtime type name: Infragistics
WebDataInput(#igtxt<ClientID>),WebCombo(<ClientID with _ → x>_input),WebSchedule.WebDateChooser(<ClientID>_input),Button(focus without select),Infragistics.Web.UI.ListControls(no script emitted), and any other type (#<ClientID>fallback). - The registered script runs 100ms after load inside
try{...}catch(e){}, so a control missing from the rendered DOM at focus time fails silently rather than breaking the page.
Constraints and usage notes¶
- Consuming master pages must declare controls with the exact IDs expected by the typed accessors (
ScriptManager1,Banner,Menu,MenuTop,MessageLabel,ErrorLabel,MainUpdatePanel) for those properties to resolve correctly. Infragistics.Web.UI.ListControlstypes never receive a focus script — callers targeting those types should not rely onFocusControlfor them.
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.Core.Infragistics111/AppViewMasterPageBase.vb