Formatting dates and numbers
If you need the user to enter dates or numeric values, you may need a user-friendly formatting for these values.
The formatting uses the culture in which the HTTP request was processed. See the Multi-language applications chapter for more details.
Formatting values
The Literal, TextBox, and other controls can specify a FormatString property. If you need to output a date or number value in the page, you can use the following syntax:
<dot:Literal Text="{value: BirthDate}" FormatString="dd/MM/yyyy" />
<dot:Literal Text="{value: TotalPrice}" FormatString="c2" />
DotVVM can also translate the ToString method on date and numeric types:
<p>Total price: {{value: TotalPrice.ToString("c2")}}</p>
DotVVM uses the same format string syntax you know from C#, with the following limitations:
Standard Numeric Format Strings: DotVVM supports
d,g,n,candpformat specifiers.Custom Numeric Format Strings: DotVVM supports
0,.and#tokens.Standard Date and Time Format Strings: DotVVM supports everything except
O,UandRformat specifiers.Custom Date and Time Format Strings: DotVVM supports everything except the
K,:,\and%tokens.
Editing formatted values
You can enforce the date or number format in the TextBox control using the FormatString property.
When the user enters a value in such control, it will be parsed based on the current culture, and re-formatted in case the entered value didn't follow the format strictly. See the validation chapter for more information on how to validate correctness of user-entered values.
<dot:TextBox Text="{value: BirthDate}" FormatString="d" />
<dot:TextBox Text="{value: TotalPrice}" FormatString="n2" />
Validate numeric and date values
If the user enters a value that cannot be parsed, DotVVM will try to set null in the property:
If the property supports
nullvalues (e. g. uses theint?type), it will get the default value on the server (e.g.0forinttype).If the property doesn't allow
nullvalues (e. g. uses theinttype), a validation error will be produced when a command is triggered.
You can use the Required attribute to validate numeric and DateTime values. If the value cannot be parsed, the client-side Required validator reports an error because it sees the null value in the property. See the validation chapter for more information on how to indicate validation errors.