clsWebDateTimeEditorBinder¶
This binder adapts the modern Infragistics Infragistics.Web.UI.EditorControls.WebDateTimeEditor control generation to SAIF object binding, replacing the classic WebDateTimeEdit path for pages that use the newer editor family. It supports multiple projection modes (Date, Text, or Value), preserves a special string-target writeback behavior added to avoid a noon-display regression, and participates in the shared event, reflection, and validation pipeline inherited from clsObjectBinderBase.
Purpose¶
- Bind a modern Infragistics date-time editor to business-object properties in either date-oriented or text-oriented workflows.
- Preserve the library's later fix that keeps string-target object-to-control updates on the editor value path instead of forcing text formatting.
- Reuse inherited validation and change-event wiring while specializing date/time conversion behavior.
Context¶
- Namespace:
SAIF.Presentation.Web.Binding - Assembly/package:
SAIF.Presentation.Web.Binding.Infragistics103(embedded/bundled as source, not independently packaged)
Public members¶
| Member | Signature | Purpose |
|---|---|---|
| TargetTypeIsString | Property TargetTypeIsString As Boolean |
Selects whether control-to-object updates persist the editor value as a string-target payload or as a Date value. |
| BindProperty | Property BindProperty As String |
Names the business-object property synchronized with the editor. |
| BindSource | Property BindSource As Object |
Supplies the object being edited and validated. |
| WebDateTimeEditor | Property WebDateTimeEditor As WebDateTimeEditor |
Attaches the modern date-time editor control that this binder drives. |
| Init() | Overrides Sub Init() |
Wires the editor ValueChanged event for immediate reverse binding when enabled. |
| ObjectToControl() | Overrides Function ObjectToControl() As Boolean |
Projects the source property into the editor Date, Text, or Value channel based on ControlBindProperty. |
| New() | Sub New() |
Defaults the binder to ControlBindProperty.Value mode. |
Inherited public members¶
| Member | Signature | Purpose | Origin |
|---|---|---|---|
| ContainsError | ReadOnly Property ContainsError As Boolean |
Set by GetErrors()/validation processing; when true, Validate()/RefreshValidation() counts this binder toward the overall invalid result and its control receives error-state CSS via SetControlFormat(). | SAIF.Presentation.Web.Binding.Infragistics103 — clsObjectBinderBase |
| IsDualBinding | ReadOnly Property IsDualBinding As Boolean |
When true, ObjectToControl()/ControlToObject() read and write the display object/property while GetErrors() checks a separate validation object/property, as configured by AddDualBinder(). | SAIF.Presentation.Web.Binding.Infragistics103 — clsObjectBinderBase |
| ControlPadding | Property ControlPadding As PadArgs |
When UsePadding is enabled, pads or trims the value written to the control during ObjectToControl(), so fixed-width display formatting is applied without changing the underlying object value. | SAIF.Presentation.Web.Binding.Infragistics103 — clsObjectBinderBase |
| ObjectPadding | Property ObjectPadding As PadArgs |
When UsePadding is enabled, pads or strips padding from the value written back to the bound property during ControlToObject(), so stored data is not polluted with display-only padding characters. | SAIF.Presentation.Web.Binding.Infragistics103 — clsObjectBinderBase |
| UsePadding | Property UsePadding As Boolean |
Enables the ControlPadding/ObjectPadding transforms during ObjectToControl()/ControlToObject(); when false, values pass through unpadded regardless of the padding arguments configured. | SAIF.Presentation.Web.Binding.Infragistics103 — clsObjectBinderBase |
| UseEvents | Property UseEvents As Boolean |
When true, Init() wires the control's native change event so a user edit immediately calls ControlToObject() instead of waiting for an explicit BindToObject()/Validate() call. | SAIF.Presentation.Web.Binding.Infragistics103 — clsObjectBinderBase |
| ControlErrors | ReadOnly Property ControlErrors As ArrayList |
Holds the error text GetErrors() collects from the bound object's IDataErrorInfo implementation; Validate() aggregates these strings into the consolidated ErrorLabel/SAIFMessage output. | SAIF.Presentation.Web.Binding.Infragistics103 — clsObjectBinderBase |
| BindType | Property BindType As BindTypes |
Determines which of ObjectToControl()/ControlToObject() actually run during DataBind()/BindToObject(), controlling whether this binder is push-only, pull-only, both, or validation-only. | SAIF.Presentation.Web.Binding.Infragistics103 — clsObjectBinderBase |
| FormControl | Overridable Property FormControl As WebControl |
Setting this property runs ProcessControl, which applies binder-specific control setup (event wiring readiness, CSS baseline) before the control participates in binding and validation passes. | SAIF.Presentation.Web.Binding.Infragistics103 — clsObjectBinderBase |
| FormControlID | Overridable ReadOnly Property FormControlID As String |
Supplied to Update() and error-focus logic to locate this binder's control instance on the page without holding a direct control reference. | SAIF.Presentation.Web.Binding.Infragistics103 — clsObjectBinderBase |
| Init() | MustOverride Sub Init() |
Called once during AddBinder() registration; each concrete binder overrides this to hook the native control event needed for event-driven ControlToObject() and to perform any control-specific setup. | SAIF.Presentation.Web.Binding.Infragistics103 — clsObjectBinderBase |
| ObjectToControl() | MustOverride Function ObjectToControl() As Boolean |
Invoked by DataBind() for binders configured as ObjectToControl/TwoWay; each concrete binder overrides this to translate the bound property's value into the control-specific display state. | SAIF.Presentation.Web.Binding.Infragistics103 — clsObjectBinderBase |
| ControlToObject() | Protected Friend MustOverride Sub ControlToObject() |
Invoked by BindToObject() for binders configured as ControlToObject/TwoWay; each concrete binder overrides this to convert the control's current value back into the bound property's type. | SAIF.Presentation.Web.Binding.Infragistics103 — clsObjectBinderBase |
| SetControlFormat(inValid As Boolean) | Protected Friend Overridable Sub SetControlFormat(inValid As Boolean) |
Called by Validate()/RefreshValidation() after error collection; sets the control's CssClass to the valid/error color per BR-BIND-001, BR-BIND-002, and BR-BIND-003, giving the reader a visual cue of validation state. | SAIF.Presentation.Web.Binding.Infragistics103 — clsObjectBinderBase |
| GetErrors() | Protected Friend Overridable Sub GetErrors() |
Reads the bound object's IDataErrorInfo.Item(property) during Validate()/RefreshValidation() and appends any non-empty message to ControlErrors, driving both ContainsError and the consolidated error display. | SAIF.Presentation.Web.Binding.Infragistics103 — clsObjectBinderBase |
| GetObjectValueAsString(inBizObject, inPropertyName) | Function GetObjectValueAsString(inBizObject As Object, inPropertyName As String) As String |
Used by ObjectToControl() to fetch the bound property's current value as display-ready text, applying ObjectPadding/ControlPadding first when UsePadding is enabled. | SAIF.Presentation.Web.Binding.Infragistics103 — clsObjectBinderBase |
| GetObjectValue(inBizObject, inPropertyName) | Function GetObjectValue(inBizObject As Object, inPropertyName As String) As Object |
Used by ObjectToControl() and type-sensitive binders to fetch the bound property's value in its native CLR type, before any control-specific conversion or formatting. | SAIF.Presentation.Web.Binding.Infragistics103 — clsObjectBinderBase |
| SetObjectValueAsString(inBizObject, inPropertyName, inValue) | Protected Function SetObjectValueAsString(inBizObject As Object, inPropertyName As String, inValue As String) As Boolean |
Used by ControlToObject() to write a control-derived string back onto the bound property, applying padding/trim rules first when UsePadding is enabled, so the object receives a correctly formatted value. | SAIF.Presentation.Web.Binding.Infragistics103 — clsObjectBinderBase |
| SetObjectValue(inBizObject, inPropertyName, inValue) | Protected Function SetObjectValue(inBizObject As Object, inPropertyName As String, inValue As Object) As Boolean |
Used by ControlToObject() to write a converted, strongly typed value back onto the bound property, bypassing string formatting for binders that perform their own type conversion. | SAIF.Presentation.Web.Binding.Infragistics103 — clsObjectBinderBase |
| ValidationKey | Friend Overridable ReadOnly Property ValidationKey As String |
Computed by AddBinder() to key the bound object into m_ValidationObjects per BR-BIND-006, ensuring repeated Validate() passes re-check the correct distinct object. | SAIF.Presentation.Web.Binding.Infragistics103 — clsObjectBinderBase |
| IsSAIFFrameWorkObject | Friend Overridable ReadOnly Property IsSAIFFrameWorkObject(Optional inObj As Object) As Boolean |
Detects SAIF framework objects by walking the CLR base-type chain for clsBusinessBase/clsBusinessCollectionBase. |
SAIF.Presentation.Web.Binding.Infragistics103 — clsObjectBinderBase |
Behavioral notes¶
- When
TargetTypeIsStringis enabled, the setter intentionally does not forceControlBindProperty.Text; the source comments tie that choice to a historical 12:00PM–12:59PM display problem. ControlToObject()writesWebDateTimeEditor.Valuefor string targets andWebDateTimeEditor.Datefor non-string targets, so outbound conversion behavior differs from object-to-control mode selection.- The event handler delegates directly to
ControlToObject()without additional state checks.
Constraints and usage notes¶
- Callers choosing
ControlBindProperty.DateorControlBindProperty.Textfor object-to-control transfer must ensure the source property can be converted withCDateorCStrrespectively. - The modern
Infragistics.Web.UI.EditorControlsdate-time editor types used here are not backed by a matching explicit<Reference Include>entry in the scanned project file and therefore depend on unresolved indirect assembly resolution**.
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.Binding.Infragistics103\InfragisticsControls\clsWebDateTimeEditorBinder.vbSAIF.Presentation.Web.Binding.Infragistics103\clsObjectBinderbase.vb