Quantcast
Channel: Active questions tagged blazor - Stack Overflow
Viewing all articles
Browse latest Browse all 4048

How To Manage Multiple Click Events On A Button Component In Syncfusion Blazor

$
0
0

So I have a child button component that uses onclick event to add a class and then remove the class after a short bit of time (for a button ripple effect). The issue I am facing now is adding another event to the parent when the button is clicked (such as opening a modal window).

Child component (PrimaryButton.razor):

@using System.Timers<button type="button" class="@ButtonClass @RippleClass" @onclick="AddRipple">@ButtonText</button>@code {    [Parameter] public string ButtonClass { get; set; }    [Parameter] public string ButtonText { get; set; }    [Parameter] public EventCallback OnClick { get; set; }    private async Task HandleClick()     {        await OnClick.InvokeAsync(null);    }    // Set Ripple Class    private string RippleClass = "";    private void AddRipple()    {        RippleClass = "ripple";        StartTimer();    }    private void StartTimer()    {        var timer = new Timer(500);        timer.Elapsed += RemoveClass;        timer.AutoReset = false;        timer.Start();    }    private void RemoveClass(object source, ElapsedEventArgs e)    {        RippleClass = "";        ((Timer)source).Dispose();        InvokeAsync(StateHasChanged);    }}

Parent (Index.razor):

<PrimaryButton ButtonClass="btn-primary1" ButtonText="Search" OnClick="@OpenModal" /><SfDialog IsModal="true" @bind-Visible="Visibility"><DialogTemplates><Header>Search Results</Header><Content><p>Showing 0 of 0 search results.</p></Content><FooterTemplate><PrimaryButton ButtonClass="btn-primary2" ButtonText="Okay" OnClick="@CloseModal" /></FooterTemplate></DialogTemplates><DialogEvents OnOverlayModalClick="@OverlayClick"></DialogEvents><DialogAnimationSettings Effect="@DialogEffect.None"></DialogAnimationSettings></SfDialog>@code {    // Modal    private bool Visibility { get; set; } = false;    private void OpenModal()    {        this.Visibility = true;    }    private void CloseModal()    {        this.Visibility = false;    }    private void OverlayClick(OverlayModalClickEventArgs args)    {        this.Visibility = false;    }}

I tried using EventCallBack but don't think I am using it correctly. I need more explanation other than what I read here (if that is the way to go):

https://learn.microsoft.com/en-us/aspnet/core/blazor/components/event-handling?view=aspnetcore-9.0#eventcallback


Viewing all articles
Browse latest Browse all 4048

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>