@using Radzen @using System.Text.Json @inject IJSRuntime JSRuntime Console log @foreach (var message in messages) { @message.Date.ToString("HH:mm:ss.ff") @message.Text } @code { /* ------------------------------------------------ * Radzen Blazor * https://www.radzen.com/blazor-components/ * dettagli installazione: * NET6: https://blazor.radzen.com/get-started/net6-server * NET8: https://blazor.radzen.com/get-started/net8 * * demo compo * https://github.com/radzenhq/radzen-blazor/blob/master/RadzenBlazorDemos/Shared/EventConsole.razor * ------------------------------------------------*/ class Message { public DateTime Date { get; set; } public string Text { get; set; } public AlertStyle AlertStyle { get; set; } } [Parameter(CaptureUnmatchedValues = true)] public IDictionary Attributes { get; set; } IList messages = new List(); protected override async Task OnAfterRenderAsync(bool firstRender) { if (!firstRender) { await JSRuntime.InvokeVoidAsync("eval", $"document.getElementById('event-console').scrollTop = document.getElementById('event-console').scrollHeight"); } } void OnClearClick() { Clear(); } public void Clear() { messages.Clear(); InvokeAsync(StateHasChanged); } public void Log(string message, AlertStyle alertStyle = AlertStyle.Info) { messages.Add(new Message { Date = DateTime.Now, Text = message, AlertStyle = alertStyle }); InvokeAsync(StateHasChanged); } public void Log(object value) { Log(JsonSerializer.Serialize(value)); } }