از پارسکدرز بیشترین بهره را ببرید و رویای کاری خود را زندگی کنید.
یازده ماه پیش منتشر شده
تعداد بازدید: 256
کد پروژه: 460351
شرح پروژه
سلام وقت بخیر
من میخوام کامپوننت های Mud رو سفارشی سازی کنم
مثلا چند نوع کامپوننت سفارشی از مودسلکت بسازم که بشه راحت در برنامه استفادشون کرد
مثلا قابلیت گروه بندی رو وقتی پر میکنم ستونی که باهاش میخوام گروه بندی کنم رو ازم بگیره و کامپوننت رو بهم بده
ظاهرش برام مهمه
در صورت رضایت اولین خروجی هر کامپوننت سوا حساب میشه
کامپوننت
@inject HttpClient Http
@typeparam T
<div>
<MudAutocomplete T="@T" @bind-Value="theValue" SearchFunc="FilteredSearchFunc"
ShowProgressIndicator="true" DebounceInterval="600"
Label="@Label" Clearable="true" Immediate="false"
Variant="MudThemeManager.MudVariant" CoerceValue="true"
ToStringFunc="GetNameFunc" />
<MudChipSet AllClosable=true OnClose="RemoveValue">
@foreach (var val in selectedValues)
{
<MudChip Size=Size.Small @key="@GetIDFunc(val)" Text="@GetNameFunc(val)" />
}
</MudChipSet>
</div>
@code {
[Parameter]
public IEnumerable<T>? Values { get; set; }
[Parameter]
public EventCallback<IEnumerable<T>> ValuesChanged { get; set; }
[Parameter]
public string Label { get; set; }
[Parameter, EditorRequired]
public Func<string, Task<IEnumerable<T>>> SearchFunc { get; set; }
[Parameter, EditorRequired]
public Func<T, string> GetNameFunc { get; set; }
[Parameter, EditorRequired]
public Func<T, int> GetIDFunc { get; set; }
private HashSet<T> selectedValues = new HashSet<T>();
private async Task<IEnumerable<T>> FilteredSearchFunc(string searchText)
{
if (!string.IsNullOrEmpty(searchText))
{
var results = await SearchFunc(searchText);
return results.Except(selectedValues);
}
return Enumerable.Empty<T>();
}
protected override void OnParametersSet()
{
base.OnParametersSet();
if (Values == null )
{
selectedValues.Clear();
}
else if( ! Values.SequenceEqual( selectedValues ))
{
selectedValues = Values.ToHashSet();
ValuesChanged.InvokeAsync(Values);
}
}
private void RefreshBinding()
{
Values = selectedValues.ToList();
ValuesChanged.InvokeAsync(Values);
StateHasChanged();
}
private void RemoveValue(MudChip chip)
{
if (selectedValues.RemoveWhere(x => GetNameFunc(x) == chip.Text) > 0)
RefreshBinding();
}
private void AddValue(T newValue)
{
if (newValue != null)
{
if (selectedValues.Add(newValue))
RefreshBinding();
}
}
/// <summary>
/// Note that this is required to a) clear the control after you add
/// an item to the list, and b) to trigger the addvalue method.
/// If MudAutoComplete's bind-Value:after worked, we could get rid
/// of this and just clear the value after it was added.
/// </summary>
private T theValue
{
get => default(T);
set { AddValue(value); }
}
}
اینجوری هم استفادهمیشه
<MultiSelectAutoComplete T=SomeClass @bind-Values="theSelectedValues"
@bind-Values:after="SelectedItemsChanged" SearchFunc="MySearchFunc"
GetIDFunc="c => c.ID" GetNameFunc="c => c.Name" />
این پروژه شامل 1 فایل مهم است، لطفا قبل از ارسال پیشنهاد حتما نسبت به بررسی این فایل اقدام فرمایید.
مهارت ها و تخصص های مورد نیاز
بودجه
750,000 تومان تا 5,000,000 تومان
مهلت برای انجام
3روز
وضعیت مناقصه
بسته
درباره کارفرما
عضویت چهارده سال پیش
قادر به انجام این پروژه هستید؟
مهلت ارسال پیشنهاد قیمت برای این پروژه تمام شده است
افزودن ویژگی سفارشی به محصول ووکامرس و سفارشی سازی افزونه دکان پرو
یازده ماه پیش منتشر شده
به رایگان یک حساب کاربری بسازید
مهارتها و تخصصهای خود را ثبت کنید، رزومه و نمونهکارهای خود را نشان دهید و سوابق کاری خود را شرح دهید.
به شیوهای که دوست دارید کار کنید
برای پروژههای دلخواه در زمان دلخواه پیشنهاد قیمت خود را ثبت کنید و به فرصتهای شغلی منحصر به فرد دسترسی پیدا کنید.
با اطمینان دستمزد دریافت کنید
از زمان شروع کار تا انتهای کار به امنیت مالی شما کمک خواهیم کرد. وجه پروژه را از ابتدای کار به امانت در سایت نگه خواهیم داشت تا تضمین شودکه بعد از تحویل کار دستمزد شما پرداخت خواهد شد.
میخواهید شروع به کار کنید؟
یک حساب کاربری بسازید
بهترین مشاغل فریلنسری را پیدا کنید
رشد شغلی شما به راحتی ایجاد یک حساب کاربری رایگان و یافتن کار (پروژه) متناسب با مهارتهای شما
است.
پیدا کردن کار (پروژه)
تماشای دمو روش کار