MudBlazor/MudBlazor

MudTable Virtualise scroll server data

Ouverte

#5 664 ouverte le 4 nov. 2022

 (5 commentaires) (13 réactions) (0 personne assignée)C# (1 631 forks)batch import
enhancementhelp wantedperformance

Métriques du dépôt

Stars
 (10 394 étoiles)
Métriques de merge PR
 (Merge moyen 6j 6h) (108 PRs mergées en 30 j)

Description

Feature request type

Enhance component

Component name

MudTable

Is your feature request related to a problem?

The MudTable is an amazing component supporting server data, but for a large data set it only supports pagination, it would be very handy if it started supporting infinite scroll with the server data.

Describe the solution you'd like

Currently, for my own use, I downloaded MudTable source code and modified the MudTable compoenent myself, the core of my solution is to expose the ItemsProvider delegate from Virtualize component inside Mud Virtualize component, this way the MudTable consumer would pass down their implementation of ItemsProviderDelegate to handle fetching data from the server as the user is scrolling down, I also exposed the OverscanCount parameter.

Virtualize component offers the RefreshDataAsync method to force load the data so I used it inside of InvokeServerLoadFunc of MudTable.

the ServerData function is still used to fetch the list of all items Ids, filtered and sorted, the Ids are kept in the component the the Virtulaize delegate ItemsProviderDelegate will fetch a subset of the actual objects from the server as thr user scrolls, this works just ok for me.

Ideally, this would be natively supported by MudTable, the OverscanCount parameter will be exposed, an async function similar to ServerData can be passed down from the consumer to load the data from the server, TotalItems can be filled by the consumer to provide a scroll length for MudTable.

Have you seen this feature anywhere else?

video of the modified mudtable https://vimeo.com/767312738/c617b44643

Describe alternatives you've considered

No response

Pull Request

  • I would like to do a Pull Request

Code of Conduct

  • I agree to follow this project's Code of Conduct

Guide contributeur