---
title: SAIFWarp child-control setup and hidden-field rendering
summary: Creates and keeps current the hidden field used to carry the focus target across an async postback.
status: draft
owner: SAIF Documentation Team
last_reviewed: 2026-08-17
library: SAIF.Presentation.Web.Controls.Infragistics103
reference_type: package
operation_id: OP-SAIFWARP-CHILDCONTROLS
trigger: ASP.NET control-creation and render lifecycle phases of the SAIFWarp control
---

# SAIFWarp child-control setup and hidden-field rendering

This operation spans two overridden lifecycle methods on `SAIFWarp` — `CreateChildControls` and `RenderContents` — that together maintain a hidden input field carrying the focus-target control ID across an async postback.

| Field | Value |
| --- | --- |
| **Operation ID** | OP-SAIFWARP-CHILDCONTROLS |
| **Trigger** | ASP.NET control-creation phase (`CreateChildControls`) and render phase (`RenderContents`) |
| **Inputs** | `FocusControlID` property |
| **Outputs** | Hidden input control `{ID}_FOCUS` added to `Controls` and rendered with current value |
| **Primary components** | `SAIFWarp.CreateChildControls`, `SAIFWarp.RenderContents` |
| **Entry point** | SAIF.Presentation.Web.Controls.Infragistics103\SAIFWarp.vb |

## Steps

1. `CreateChildControls`: call `MyBase.CreateChildControls()`, then create a hidden input control (`m_HiddenFocus`) with ID `{Me.ID}_FOCUS` and initial value `FocusControlID`, and add it to the `Controls` collection.
2. `RenderContents`: refresh `m_HiddenFocus.Value` from the current `FocusControlID` property immediately before calling `MyBase.RenderContents(writer)`, ensuring the hidden field reflects the latest focus target at render time.

## Process flow

The following diagram visualizes this operation's control flow.

```mermaid
flowchart TD
	Start([CreateChildControls called]) --> Base1[Call MyBase.CreateChildControls]
	Base1 --> Create[Create hidden input m_HiddenFocus with ID FOCUS]
	Create --> Add[Add to Controls collection]
	Add --> Render([RenderContents called later])
	Render --> Refresh[Refresh m_HiddenFocus.Value from FocusControlID]
	Refresh --> Base2[Call MyBase.RenderContents]
	Base2 --> EndOk([Hidden field rendered with current value])
```

## Failure and edge-case behavior
- No error handling branches exist in either method; both are unconditional lifecycle overrides.

## Related documentation
- [Operations and processes](../operations-processes.md)
- [Business rules](../business-rules.md)

## Sources
- SAIF.Presentation.Web.Controls.Infragistics103\SAIFWarp.vb
