@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 { 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)); } }