• 1403/02/16

به روزرسانی لیست در کامپوننت والد :

استاد سلام

من یه لیست رو از دیتابیس خوندم و نمایش دادم،

اون لیست رو دادم به یه کامپوننت فرزند و یکی از عناصر اون لیست را حذف کردم،

چطور میتونم او لیست رو در کامپوننت والد بروزرسانی کنم؟ چون وقتی یکی از عناصر رو 

حذف میکنم، لیست در کامپوننت والد تغییر نمیکنه و حتما باید صفحه را رفرش کنم.

میخوام لحظه ای که یکی از عناصر حذف میشه، همون لحظه کامپوننت والد هم بروز بشه

خیلی متشکر

  • 1403/02/17
  • ساعت 10:44

سلام 

میتونید از SignalR برای RealTime بودن استفاده کنید 

یا با جاوااسکریپت 

روی هرکدام تسلط دارید میتونید انجام دهید


  • 1403/02/19
  • ساعت 18:59

سلام وقت بخیر 
  نمونه کد میتونید این شکلی استفاده کنید 
در این خصوص پاتریک چند سال پیش یک فیلم آموزشی تولید کرده بود . 
و نمونه های دیگه از این روش درون گیت هاب و  .... هست اما شاید یکی ساده ترین راه ها این شکلی باشه 
با دیدن این فیلم روش تغییر و به روز رسانی  Component  پدر توسط Component فرزند آموزش داده شده 
https://www.youtube.com/watch?v=QSM1Vhu1Nsc

سورس کامل 

https://github.com/patrickgod/DotNet7BlazorComponentCommunication

در Component فرزند 

@inject MessageService MessageService

<div>
    <h3>Child</h3>
    <span>Hey there, I'm @Name.</span>
    <p />
    <button @onclick="@(() => SayHi.InvokeAsync("Hi!"))">Say "Hi"</button>
    <p />
    <button @onclick="@(() => MessageService.SaySomething($"Anybode here? I'm {Name}."))">Say something</button>
</div>
@code {
    [Parameter]
    public string? Name { get; set; }

    [Parameter]
    public EventCallback<string> SayHi { get; set; }
}

 

 

 

در Component پدر 

@inject MessageService MessageService
@implements IDisposable

<div>
    <h3>Parent</h3>
    <span>Hi, I'm @Name.</span><br />
    <span>My child says: "@childText"</span><br />
    <span>Someone said: "@MessageService.Message"</span><br />

    <Child Name="@ChildName" SayHi="ChildSaidHi"/>
</div>
@code {
    [Parameter]
    public string? Name { get; set; }

    [Parameter]
    public string? ChildName { get; set; }

    string childText = "Nothing.";

    private void ChildSaidHi(string message)
    {
        childText = message;
    }

    protected override void OnInitialized()
    {
        MessageService.SaidSomething += StateHasChanged;
    }

    public void Dispose()
    {
        MessageService.SaidSomething -= StateHasChanged;
    }
}

 


logo-samandehi