---
title: SAIFWebMaskEdit value accessors
summary: Returns cleaned phone/tax-ID values instead of raw mask text when properties are read by consuming code.
status: draft
owner: SAIF Documentation Team
last_reviewed: 2026-08-17
library: SAIF.Presentation.Web.Controls.Infragistics103
reference_type: package
operation_id: OP-MASKEDIT-ACCESSORS
trigger: PhoneValue or TaxIdValue property read by consuming code
---

# SAIFWebMaskEdit value accessors

This operation is the pair of read-only property getters (`PhoneValue`, `TaxIdValue`) on `SAIFWebMaskEdit` that a consuming page reads after postback to obtain a cleaned value instead of the raw mask text.

| Field | Value |
| --- | --- |
| **Operation ID** | OP-MASKEDIT-ACCESSORS |
| **Trigger** | Property read by consuming code (e.g., a page reading the posted-back value) |
| **Inputs** | The control's underlying `RawText`/`Text` (from base `WebMaskEdit`) |
| **Outputs** | A cleaned string value |
| **Primary components** | `SAIFWebMaskEdit.PhoneValue`, `SAIFWebMaskEdit.TaxIdValue` |
| **Entry point** | SAIF.Presentation.Web.Controls.Infragistics103\SAIFWebMaskEdit.vb |

## Steps

**`PhoneValue` getter:**
1. If `RawText.Trim.Length = 0`, return empty string ([BR-3](../business-rules.md#br-3-empty-masked-field-returns-empty-string)) — guards against returning mask placeholder characters for an empty field.
2. Otherwise take `Text.Trim`; if it contains the `PHONE_EXT` marker (`"x"`) and that marker is the very last character (no extension digits follow it), strip the marker and everything from it onward ([BR-2](../business-rules.md#br-2-dangling-phone-extension-marker-stripped)).
3. Catch `System.Data.StrongTypingException` and return empty string on that specific error path.

**`TaxIdValue` getter:**
1. If `RawText.Trim.Length = 0`, return empty string ([BR-3](../business-rules.md#br-3-empty-masked-field-returns-empty-string)); otherwise return `Text` unmodified.

## Process flow

The following diagram visualizes the `PhoneValue` getter's control flow (the more complex of the two accessors).

```mermaid
flowchart TD
	Start([PhoneValue read]) --> Empty{RawText.Trim.Length = 0?}
	Empty -->|Yes| EndEmpty([Return empty string])
	Empty -->|No| Trim[Take Text.Trim]
	Trim --> HasExt{Contains PHONE_EXT as last char?}
	HasExt -->|Yes| Strip[Strip marker and everything after]
	HasExt -->|No| EndValue
	Strip --> EndValue([Return cleaned value])
	Trim -.->|StrongTypingException| Catch([Return empty string])
```

## Failure and edge-case behavior
- `System.Data.StrongTypingException` during `PhoneValue` evaluation: caught and an empty string is returned.
- Empty/untouched field: both accessors return empty string rather than mask placeholder characters ([BR-3](../business-rules.md#br-3-empty-masked-field-returns-empty-string)).

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

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