Reusable Blazor component for numeric input with formatting and validation.
$ dotnet add package Blazor.NumberInputKomponen Blazor kustom untuk input angka dengan dukungan validasi, format lokal, dan integrasi form yang fleksibel. Terdiri dari dua komponen utama:
<NumberInput>Komponen ringan dan fleksibel untuk input angka mandiri, tanpa tergantung pada EditForm.
@bind-NumberValueN0, F2, dsb)RequiredMinValue, MaxValue, StepCultureInfo)@oninput, @onchange, @onpasteAdditionalAttributes)<NumberInput @bind-NumberValue="amount"
Placeholder="Masukkan jumlah"
DisplayPrefix="Rp"
Format="N0"
Required="true"
RequiredValueValidationMessage="Wajib diisi" />
<NumberInputBase>Turunan dari InputBase<decimal?>, ideal untuk integrasi EditForm dan validasi otomatis dengan anotasi data ([Required], [Range], dsb).
@bind-ValueEditFormDataAnnotationsValidationMessage<NumberInput> (format, batasan, kultur, dsb)<EditForm Model="model" OnValidSubmit="Submit">
<DataAnnotationsValidator />
<NumberInputBase @bind-Value="model.Amount"
Placeholder="Masukkan jumlah"
DisplayPrefix="Rp"
Format="N0" />
<ValidationMessage For="@(() => model.Amount)" />
</EditForm>
| Fitur / Aspek | <NumberInput> | <NumberInputBase> (InputBase) |
|---|---|---|
| Binding | @bind-NumberValue | @bind-Value |
| Validasi Otomatis | ❌ Manual | ✅ Ya, via EditForm |
Digunakan dalam EditForm | Opsional | ✅ Direkomendasikan |
| Prefix / Suffix | ✅ | ✅ |
| Keyboard ↑ ↓ Step | ✅ | ✅ |
| Atribut HTML tambahan | ✅ | ✅ |
| Reusabilitas (form standar) | ⚠️ Perlu usaha | ✅ Sesuai konvensi Blazor |
| Berat & fleksibilitas | Ringan & bebas | Standar & konsisten |
| Parameter | Tipe | Deskripsi |
|---|---|---|
NumberValue / Value | decimal? | Nilai angka (nullable). |
Format | string | Format angka, contoh: "N0", "F2" |
DecimalPlaces | int | Presisi parsing desimal |
Culture | CultureInfo | Kultur lokal seperti new("id-ID") |
MinValue, MaxValue | decimal? | Batas bawah & atas nilai |
Step | decimal? | Besar kenaikan nilai saat ↑↓ |
Placeholder | string? | Placeholder input |
DisplayPrefix / Suffix | string? | Teks tambahan sebelum/sesudah nilai |
Required | bool? | Menandakan wajib diisi (manual) |
RequiredValueValidationMessage | string? | Pesan validasi jika Required=true |
AdditionalAttributes | Dictionary<string, object>? | Atribut tambahan seperti data-*, style, dll. |
Gunakan <NumberInput> jika:
EditFormGunakan <NumberInputBase> jika:
EditFormInputBase<T> BlazorDibuat oleh ganiputras · MIT License · Kompatibel Blazor Server & WASM