clsHyperLinkBinder¶
This binder renders a business-object value into a HyperLink's display text, with optional formatting for date and decimal values. It is a one-way presentation binder that reuses the base reflection helpers but intentionally does not read user changes back into the bound object.
Purpose¶
- Display a bound object value in hyperlink text without requiring page-level reflection code.
- Apply caller-supplied formatting when the displayed value is a date, decimal, or format-compatible object.
- Participate in the common binder registration model while remaining object-to-control only.
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 |
|---|---|---|
| BindProperty | Property BindProperty As String |
Names the business-object property whose value becomes the hyperlink text. |
| FormatString | Property FormatString As String |
Supplies the formatting rule applied when rendering non-empty typed values. |
| BindSource | Property BindSource As Object |
Holds the business object that supplies the display value and validation context. |
| HyperLink | Property HyperLink As HyperLink |
Attaches the concrete hyperlink control and registers it with the base binder pipeline. |
| Init() | Overrides Sub Init() |
Performs no event wiring because this binder only supports object-to-control flow. |
| ObjectToControl() | Overrides Function ObjectToControl() As Boolean |
Reads the bound property and writes formatted or raw text into the hyperlink control. |
| ## Inherited public members | ||
| Member | Signature | Purpose |
| --- | --- | --- |
| 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(). |
| 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(). |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| ## Behavioral notes | ||
- With an empty FormatString, the binder writes the property's string value directly. |
||
- With a non-empty FormatString, the binder special-cases DateTime and Decimal; other values flow through String.Format(FormatString, value). |
||
- ControlToObject() is intentionally empty, so user interaction with the hyperlink does not update the bound object. |
Constraints and usage notes¶
- This binder only writes
HyperLink.Text; it does not populate navigation-related properties. - A non-empty
FormatStringassumes the bound property returns a non-Nothingvalue with a compatible runtime type.
Sources¶
SAIF.Presentation.Web.Binding.Infragistics103\ASPControls\clsHyperLinkBinder.vbSAIF.Presentation.Web.Binding.Infragistics103\clsObjectBinderbase.vb