---
title: Push a user edit back to the model
summary: Writes a user's edited control value into the bound model property.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-08-17
library: SAIF.Presentation.Web.Controls.AJAX.Infragistics111
reference_type: package
operation_id: OP-AJAX-03
trigger: The inner editor raises TextChanged / ValueChange on postback
---

# Push a user edit back to the model

This operation captures a user's edit on the underlying editor's change event and writes it back into the bound model object by reflection, then optionally re-validates the control.

| Field | Value |
| --- | --- |
| **Operation ID** | OP-AJAX-03 |
| **Trigger** | The inner editor raises `TextChanged` / `ValueChange` on postback |
| **Inputs** | Editor's current text/date value |
| **Outputs** | `BoundObject.<BindProperty>` updated; optional validation run |
| **Primary components** | `AutoBindTextbox.Textbox_TextChanged`, `AutoBindWebMaskEdit.Textbox_TextChanged`, `AutoBindWebDateTimeEdit.Textbox_TextChanged` → `AutoBindControlAncestor.BindToObject` |
| **Entry point** | `SAIF.Presentation.Web.Controls.AJAX.Infragistics111/AutoBindControlAncestor.vb` |

## Steps

1. The event handler copies the editor's current text/date into the control's `Value` property. ([BR-AJAX-007](../business-rules.md#br-ajax-007-a-user-edit-is-captured-and-pushed-to-the-model-immediately))
2. `BindToObject` copies `Me.Value` into `BoundObject.<BindProperty>` by reflection. ([BR-AJAX-004](../business-rules.md#br-ajax-004-bound-target-resolved-by-walking-the-dotted-bindsource-path))
   - On reflection failure: the exception is swallowed and the model silently keeps its previous value.*
3. If `AutoValidate` is set (default `True`), run `Validate()`. ([BR-AJAX-006](../business-rules.md#br-ajax-006-controls-validate-automatically-after-bind-and-edit-unless-disabled))

## Process flow

The following diagram visualizes this operation's control flow.

```mermaid
flowchart TD
	Start([Editor raises TextChanged / ValueChange]) --> Copy[Copy editor value into control's Value]
	Copy --> Write[BindToObject writes Value into BoundObject.BindProperty]
	Write --> AutoValidate{AutoValidate?}
	AutoValidate -->|Yes| Validate[Run Validate]
	AutoValidate -->|No| EndOk([Model updated])
	Validate --> EndOk
```

## Failure and edge-case behavior
- Reflection failures during the write-back are swallowed; the model silently keeps its previous value with no error or audit trail.*

## Related documentation
- [Operations and processes](../operations-processes.md)
- [Business rules](../business-rules.md)
- [SQL catalog](../sql/index.md)
- [Database tables](../database-tables.md)

> **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.AJAX.Infragistics111/AutoBindControlAncestor.vb`
- `SAIF.Presentation.Web.Controls.AJAX.Infragistics111/AutoBindTextbox.vb`
- `SAIF.Presentation.Web.Controls.AJAX.Infragistics111/AutoBindWebMaskEdit.vb`
- `SAIF.Presentation.Web.Controls.AJAX.Infragistics111/AutoBindWebDateTimeEdit.vb`
