Formats the value as a string. Derived classes can override this to determine the formatting used for CurrentValueAsString.
diff --git a/examples/Demo/Shared/Pages/NumberField/Examples/NumberFieldTypeConstraints.razor b/examples/Demo/Shared/Pages/NumberField/Examples/NumberFieldTypeConstraints.razor
new file mode 100644
index 0000000000..b8fe38377d
--- /dev/null
+++ b/examples/Demo/Shared/Pages/NumberField/Examples/NumberFieldTypeConstraints.razor
@@ -0,0 +1,26 @@
+
+ Unsigned short with inherent constraints from type
+ Example unsigned short: @exampleUshort1
+
+ Minimum value: @(ushort.MinValue); Maximum value: @(ushort.MaxValue)
+
+
+
+ Unsigned short with inherent constraints from type and manual max
+ Example unsigned short: @exampleUshort2
+
+ Minimum value: @(ushort.MinValue); Maximum value: 10
+
+
+
+ Unsigned short with inherent constraints, but Min and Max overrides.
+ Example unsigned short: @exampleUshort3
+
+ Minimum value: 5; Maximum value: 10
+
+
+@code {
+ ushort exampleUshort1 { get; set; }
+ ushort exampleUshort2 { get; set; }
+ ushort exampleUshort3 { get; set; }
+}
diff --git a/examples/Demo/Shared/Pages/NumberField/Examples/NumberFieldTypes.razor b/examples/Demo/Shared/Pages/NumberField/Examples/NumberFieldTypes.razor
index 9748071b1e..a438488efe 100644
--- a/examples/Demo/Shared/Pages/NumberField/Examples/NumberFieldTypes.razor
+++ b/examples/Demo/Shared/Pages/NumberField/Examples/NumberFieldTypes.razor
@@ -1,46 +1,77 @@
- Long
+ Long
+
Example long: @exampleLong
-
- Minimum value: -999999999999; Maximum value: 999999999999
+
+ Minimum value: @(MinValue); Maximum value: @(MaxValue)
Short
-
+
Minimum value: @(short.MinValue); Maximum value: @(short.MaxValue)
- Float
+ Float
+
Example float: @exampleFloat
-
- Minimum value: @(float.MinValue); Maximum value: @(float.MaxValue)
+
+ Minimum value: @(MinValue); Maximum value: @(MaxValue)
- Float
- Example float: @exampleFloat (step=0.25)
-
- Minimum value: @(float.MinValue); Maximum value: @(float.MaxValue)
+ Float
+
+ Example float: @exampleFloat2 (step=0.25)
+
+ Minimum value: @(MinValue); Maximum value: @(MaxValue)
- Double
+ Double
+
Example double: @exampleDouble
-
- Minimum value: @(double.MinValue); Maximum value: @(double.MaxValue)
+
+ Minimum value: @(MinValue); Maximum value: @(MaxValue)
- Decimal
+ Decimal
+
Example decimal: @exampleDecimal
-
- Minimum value: @(decimal.MinValue); Maximum value: @(decimal.MaxValue)
+
+ Minimum value: @(MinValue); Maximum value: @(MaxValue)
+
+
+
+ Unsigned short
+ Example unsigned short: @exampleUshort
+
+ Minimum value: @(ushort.MinValue); Maximum value: @(ushort.MaxValue)
+
+
+
+ Unsigned integer
+ Example unsigned integer: @exampleUint
+
+ Minimum value: @(uint.MinValue); Maximum value: @(uint.MaxValue)
+
+
+
+ Unsigned long
+ Example unsigned long: @exampleUlong
+
+ Minimum value: @(ulong.MinValue); Maximum value: @(MaxValue)
@code {
- int exampleInt { get; set; } = 123;
- int exampleInt2 { get; set; } = 345;
short shortMin = short.MinValue;
- long exampleLong { get; set; } = 999999999999;
+ long exampleLong { get; set; } = 9999999997;
float exampleFloat { get; set; } = 123.45f;
+ float exampleFloat2 { get; set; } = 123.45f;
double exampleDouble { get; set; } = 456.32d;
decimal exampleDecimal { get; set; } = Decimal.One / 3;
+ ushort exampleUshort { get; set; }
+ uint exampleUint { get; set; }
+ ulong exampleUlong { get; set; }
+
+ private const long MaxValue = 9999999999;
+ private const long MinValue = -9999999999;
}
diff --git a/examples/Demo/Shared/Pages/NumberField/NumberFieldPage.razor b/examples/Demo/Shared/Pages/NumberField/NumberFieldPage.razor
index 1e756683d3..ddfae3641b 100644
--- a/examples/Demo/Shared/Pages/NumberField/NumberFieldPage.razor
+++ b/examples/Demo/Shared/Pages/NumberField/NumberFieldPage.razor
@@ -33,6 +33,8 @@
+
+
diff --git a/src/Core/Components/Base/FluentInputBaseHandlers.cs b/src/Core/Components/Base/FluentInputBaseHandlers.cs
index 05c8c62ac0..3e76ac4ea8 100644
--- a/src/Core/Components/Base/FluentInputBaseHandlers.cs
+++ b/src/Core/Components/Base/FluentInputBaseHandlers.cs
@@ -34,6 +34,11 @@ protected virtual async Task ChangeHandlerAsync(ChangeEventArgs e)
{
await SetCurrentValueAsync(result ?? default);
_notifyCalled = true;
+
+ if(FieldBound && CascadedEditContext != null)
+ {
+ _parsingValidationMessages?.Clear(); // Clear any previous errors
+ }
}
else
{
@@ -56,7 +61,7 @@ protected virtual async Task ChangeHandlerAsync(ChangeEventArgs e)
///
///