پارس‌کدرز چگونه کار می‌کند؟

از پارس‌کدرز بیشترین بهره را ببرید و رویای کاری خود را زندگی کنید.

پارس‌کدرز خریداران یا کارفرمایان را به مجری‌ها /فریلنسرهای خبره‌ای متصل می‌کند که برای انجام پروژه آماده هستند.

سفارشی سازی کامپوننتهای mudblazor

پنج ماه پیش منتشر شده

تعداد بازدید: 174

کد پروژه: 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روز

وضعیت مناقصه

بسته


درباره کارفرما

عضویت چهارده سال پیش

2 پروژه ثبت شده ،
0 پروژه در حال انجام ،
0 پروژه آماده دریافت پیشنهاد ،
نرخ پذیرش پیشنهاد 0%

برای پیدا کردن پروژه‌های مشابه ثبت نام کنید و پروفایل خود را بسازید.

ورود با گوگل
یا
نام نباید خالی باشد.
نام خانوادگی نباید خالی باشد.

نیاز به استخدام فریلنسر یا سفارش پروژه مشابه دارید؟

سفارش پروژه مشابه

قادر به انجام این پروژه هستید؟

ثبت نام کنید

مهلت ارسال پیشنهاد قیمت برای این پروژه تمام شده است

سری به پروژه‌های مشابه بزنید

روش کار در پارس‌کدرز

به رایگان یک حساب کاربری بسازید

مهارت‌ها و تخصص‌های خود را ثبت کنید، رزومه و نمونه‌کارهای خود را نشان دهید و سوابق کاری خود را شرح دهید.

به شیوه‌ای که دوست دارید کار کنید

برای پروژه‌های دلخواه در زمان دلخواه پیشنهاد قیمت خود را ثبت کنید و به فرصت‌های شغلی منحصر به فرد دسترسی پیدا کنید.

با اطمینان دستمزد دریافت کنید

از زمان شروع کار تا انتهای کار به امنیت مالی شما کمک خواهیم کرد. وجه پروژه را از ابتدای کار به امانت در سایت نگه خواهیم داشت تا تضمین شودکه بعد از تحویل کار دستمزد شما پرداخت خواهد شد.

می‌خواهید شروع به کار کنید؟

یک حساب کاربری بسازید


بهترین مشاغل فریلنسری را پیدا کنید
رشد شغلی شما به راحتی ایجاد یک حساب کاربری رایگان و یافتن کار (پروژه) متناسب با مهارت‌های شما است.

پیدا کردن کار (پروژه)

تماشای دمو روش کار