Свойство загрузки MudTable игнорируется при первоначальном рендерингеC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Свойство загрузки MudTable игнорируется при первоначальном рендеринге

Сообщение Anonymous »

Я столкнулся с проблемой, которую не могу понять.
Вот запущенный пример проблемы, которую я пытаюсь решить с помощью TryMudBlazor.
Кнопка «Экспорт» должна быть отключена всякий раз, когда таблица загружает данные с помощью метода ServerData. Этот код работает нормально, за исключением самого первого процесса загрузки. Кнопка остается включенной, даже если таблица находится в состоянии загрузки.
Может ли кто-нибудь помочь мне найти логическое объяснение, почему это происходит только во время начальной загрузки? Есть очень похожий вопрос (см. свойство MudTable Loading, для которого установлено значение false - индикатор загрузки отображается при ServerReload), но предложенные решения не решают мою проблему.
Для удобства вот код из примера TryMudBlazor:
@using System.Text.Json.Serialization
@using System.Threading

Export
Reload



Periodic Elements



Nr


Sign


Name


Position


Molar mass



@context.Number
@context.Sign
@context.Name
@context.Position
@context.Molar


No matching records found


Loading...






@code {
#nullable enable
private MudTable? _table;

private async Task ServerReload(TableState state, CancellationToken token)
{

// Forward the provided token to methods which support it
List data = [];
// Simulate a long-running operation
await Task.Delay(2300, token);
// Get the total count
var totalItems = data.Count;
// Get the paged data
var pagedData = data.Skip(state.Page * state.PageSize).Take(state.PageSize).ToList();
// Return the data
return new TableData {TotalItems = totalItems, Items = pagedData};
}

private Task ReloadServerData() => _table is null ? Task.CompletedTask : _table.ReloadServerData();

protected override void OnAfterRender(bool firstRender)
{
if (_table is not null)
{
var count = _table.TotalItems;
}
}

public class Element
{
public string? Group { get; set; }

public int Position { get; set; }

public string? Name { get; set; }

public int Number { get; set; }

[JsonPropertyName("small")] public string? Sign { get; set; }

public double Molar { get; set; }

public IReadOnlyCollection? Electrons { get; set; }

///
/// Overriding Equals is essential for use with Select and Table because they use HashSets internally
///
public override bool Equals(object? obj) => Equals(GetHashCode(), obj?.GetHashCode());

///
/// Overriding GetHashCode is essential for use with Select and Table because they use HashSets internally
///
public override int GetHashCode() => Name?.GetHashCode() ?? 0;

public override string ToString() => $"{Sign} - {Name}";
}
}


Подробнее здесь: https://stackoverflow.com/questions/790 ... ial-render
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»