BzAutoComplete
تکمیل خودکار
سرچ هوشمند روی لیست استاتیک یا داینامیک
دکمهفرم و اینپوتگروه اینپوتگروه دکمهانتخاب تاریختکمیل خودکارکارتنمایشلودینگدیالوگاعلانپیام عملیاتمنو کشوییکانتکس منوصفحه بندیلایت باکسدرختدیتاگریدنمودارتب و آکاردیوننویگیشن بارسایدبارتایم لاینویزارداسلایدرآپلودرادیتور متنتقویمابزار ایرانی
کامپوننتی پیدا نشد.
لیست ثابت
ساده ترین حالتش اینه که یه لیست مثلا شهر، استان بهش پاس بدیم
city=
@using BzCore.Components.AutoComplete
<BzAutoComplete TItem="string"
@bind-Value="_city"
Label="شهر"
Items="_cities"
Clearable
Placeholder="جستجوی شهر" />
<p>city=@_city</p>
@code {
private string _city = "";
private readonly string[] _cities =
{
"تهران", "مشهد", "اصفهان", "شیراز", "تبریز",
"کرج", "اهواز", "قم", "کرمانشاه", "رشت"
};
}جستجوی async
در این روش میتونی یه متد بجای لیست وصل کنی و با سرچ مستقیم به api درخواست بزنی همچنین از debounseMs میتونی استفاده کنی برای نگه داشتن حالت تایپ
async=
| پارامتر | توضیح |
|---|---|
Items | دیتا اصلی مثلا لیست شهرها(قبلا از سرور گرفتی و میخوای بفرستی به کامپوننت) |
SearchFunc | بجای Items استفاده میشه و متد وصل میکنی و مستقیم با تایپ درخواست به سرور میزنی و سرچ میکنی |
MinSearchLength | حداقل کاراکتر برای شروع سرچ |
DebounceMs | تاخیر بین تایپ و جستجو |
Clearable | دکمه پاک کردن مقدار |
@using BzCore.Components.AutoComplete
<BzAutoComplete TItem="string"
@bind-Value="_city"
Label="شهر (async)"
SearchFunc="SearchCitiesAsync"
MinSearchLength="1"
DebounceMs="250"
Placeholder="حداقل 1 حرف" />
<p>async=@_city</p>
@code {
private string _city = "";
private readonly string[] _all =
{
"تهران", "مشهد", "اصفهان", "شیراز", "تبریز",
"کرج", "اهواز", "قم", "کرمانشاه", "رشت"
};
// Swap this body for a real API / EF Core call.
private async Task<IEnumerable<string>> SearchCitiesAsync(string term)
{
await Task.Delay(150); // pretend network latency
return _all.Where(c => c.Contains(term, StringComparison.OrdinalIgnoreCase));
}
}