NumberInput - added onchange method to run Math.Round on the Value when leaving field, adjusting the decimal places provided with DecimalPlaces parameter
This commit is contained in:
parent
1fd0028557
commit
e416c42952
@ -10,12 +10,13 @@
|
|||||||
step="@_step"
|
step="@_step"
|
||||||
disabled="@Disabled"
|
disabled="@Disabled"
|
||||||
readonly="@Readonly"
|
readonly="@Readonly"
|
||||||
|
value="@_value"
|
||||||
@onkeydown=@(args => ChangeValue(args))
|
@onkeydown=@(args => ChangeValue(args))
|
||||||
@onkeydown:preventDefault="@_preventDefaultAction"
|
@onkeydown:preventDefault="@_preventDefaultAction"
|
||||||
@oninput=@GetValueAsync
|
@oninput=@GetValueAsync
|
||||||
@onmousewheel=@OnMouseWheel
|
@onmousewheel=@OnMouseWheel
|
||||||
|
@onchange="@Change"
|
||||||
@onwheel="OnMouseWheel"
|
@onwheel="OnMouseWheel"
|
||||||
@bind-value="@_value"
|
|
||||||
@attributes="@InputAttributes" />
|
@attributes="@InputAttributes" />
|
||||||
|
|
||||||
<span class="highlight"></span>
|
<span class="highlight"></span>
|
||||||
|
@ -121,16 +121,25 @@ public partial class NumberInput<NumberType>:InputBase where NumberType : INumbe
|
|||||||
}
|
}
|
||||||
if (string.IsNullOrEmpty(newVal))
|
if (string.IsNullOrEmpty(newVal))
|
||||||
{
|
{
|
||||||
await ValueChanged.InvokeAsync((NumberType)Convert.ChangeType(AdjustDecimalPlaces((NumberType)Convert.ChangeType(null, typeof(NumberType))), typeof(NumberType)));
|
await ValueChanged.InvokeAsync((NumberType)Convert.ChangeType((NumberType)Convert.ChangeType(null, typeof(NumberType)), typeof(NumberType)));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!newVal.Equals(_value))
|
if (!newVal.Equals(_value))
|
||||||
await ValueChanged.InvokeAsync((NumberType)Convert.ChangeType(AdjustDecimalPlaces((NumberType)Convert.ChangeType(newVal, typeof(NumberType))), typeof(NumberType)));
|
await ValueChanged.InvokeAsync((NumberType)Convert.ChangeType((NumberType)Convert.ChangeType(newVal, typeof(NumberType)), typeof(NumberType)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task Change(ChangeEventArgs args)
|
||||||
|
{
|
||||||
|
if (args.Value is not null)
|
||||||
|
{
|
||||||
|
Value = AdjustDecimalPlaces((NumberType)Convert.ChangeType(args.Value, typeof(NumberType)));
|
||||||
|
}
|
||||||
|
ValueChanged.InvokeAsync(Value);
|
||||||
|
}
|
||||||
|
|
||||||
[Parameter] public EventCallback<KeyboardEventArgs> OnKeyDown { get; set; }
|
[Parameter] public EventCallback<KeyboardEventArgs> OnKeyDown { get; set; }
|
||||||
|
|
||||||
private bool CheckKey(string key)
|
private bool CheckKey(string key)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user