Komponen Blazor kustom untuk input angka dengan dukungan validasi, format lokal, dan integrasi form yang fleksibel. Terdiri dari dua komponen utama:
Komponen ringan dan fleksibel untuk input angka mandiri, tanpa tergantung pada EditForm.
- Binding:
@bind-NumberValue - Format angka (
N0,F2, dsb) - Validasi manual via parameter
Required - Prefix/Suffix (misal: Rp, %, kg)
- Dukungan
MinValue,MaxValue,Step - Dukungan parsing lokal (
CultureInfo) - Navigasi keyboard ↑ ↓
- Event interaktif:
@oninput,@onchange,@onpaste - Atribut tambahan HTML (
AdditionalAttributes)
<NumberInput @bind-NumberValue="amount"
Placeholder="Masukkan jumlah"
DisplayPrefix="Rp"
Format="N0"
Required="true"
RequiredValueValidationMessage="Wajib diisi" />Turunan dari InputBase<decimal?>, ideal untuk integrasi EditForm dan validasi otomatis dengan anotasi data ([Required], [Range], dsb).
- Binding:
@bind-Value - Terintegrasi otomatis dengan
EditForm - Validasi otomatis dengan
DataAnnotations - Mendukung
ValidationMessage - Dukungan semua fitur
<NumberInput>(format, batasan, kultur, dsb) - Mengikuti pipeline Blazor standar
<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) | ✅ 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:- Butuh komponen input angka ringan
- Tidak menggunakan
EditForm - Ingin kontrol validasi manual
-
Gunakan
<NumberInputBase>jika:- Menggunakan
EditForm - Ingin validasi otomatis dari model
- Mengikuti pola
InputBase<T>Blazor
- Menggunakan
Dibuat oleh ganiputras · MIT License · Kompatibel Blazor Server & WASM