Я работаю с подкрепкой и фильтрацией на стороне сервера для DataGrid Mudblazor, и, проверяя строку, все сохраняется должным образом, но я не могу заставить ряды перепроверить в изменении страницы, с Rowclassfunc.
View
@($"{selectedItems.Count} items selected")
< /code>
@code {
private MudDataGrid? _dataGrid;
private ObsRequestModel _requestDto = new();
private HashSet selectedItems { get; set; } = new HashSet();
private async Task Search()
{
if (_dataGrid is not null)
{
await _dataGrid!.ReloadServerData();
}
}
private async Task OnSearchChange(string newValue)
{
_requestDto.Search = newValue;
await Search();
}
private async Task LoadGridData(GridState state)
{
_requestDto.Filters.Clear();
_requestDto.Page = state.Page + 1;
_requestDto.PageSize = state.PageSize;
// Extract sorting information
var sorting = state.SortDefinitions.FirstOrDefault(); // Assuming single column sorting
if (sorting != null)
{
_requestDto.SortColumn = sorting.SortBy;
_requestDto.SortDirection = sorting.Descending == false ? "asc" : "desc"; // Convert Enum to string or appropriate format
}
// Extract filtering information
foreach (var filter in state.FilterDefinitions)
{
if (filter.Value != null) {
var colString = filter.Title.ToString();
var valString = colString == "County" ? await ReferenceService.GetCountyFips(filter.Value.ToString()) : filter.Value.ToString();
_requestDto.Filters.Add(new FilterDefinition
{
Column = colString,
Operator = filter.Operator.ToString(),
Value = valString
});
}
else if (filter.Operator.ToLower() == "is empty" || filter.Operator.ToLower() == "is not empty")
{
_requestDto.Filters.Add(new FilterDefinition
{
Column = filter.Title.ToString(),
Operator = filter.Operator.ToString(),
Value = "0", // Assuming the value is a string, adjust as necessary
});
}
}
ObListDTO Response = await ReferenceService.GetAllObs(_requestDto);
GridData data = new()
{
Items = Response.Items,
TotalItems = Response.ItemTotalCount
};
return data;
}
private async Task OnStartDateChanged(DateTime? newDate)
{
_requestDto.StartDate = newDate;
await DateChange();
}
private async Task OnEndDateChanged(DateTime? newDate)
{
_requestDto.EndDate = newDate;
await DateChange();
}
private async Task DateChange()
{
if (_dataGrid is not null)
{
await _dataGrid!.ReloadServerData();
}
}
public void Dispose()
{
}
private string SelectedRowClassFunc(ObservationListModel element, int rowNumber)
{
return selectedItems.Contains(element) ? "selected" : string.Empty;
}
Подробнее здесь: https://stackoverflow.com/questions/777 ... wclassfunc