Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

[data grid] Improve Server-side support with new data source #8179

Open
1 of 7 tasks
cherniavskii opened this issue Mar 8, 2023 · 12 comments
Open
1 of 7 tasks

[data grid] Improve Server-side support with new data source #8179

cherniavskii opened this issue Mar 8, 2023 · 12 comments
Labels
component: data grid This is the name of the generic UI component, not the React module! feature: Server integration Better integration with backends new feature New feature or request plan: Pro Impact at least one Pro user umbrella For grouping multiple issues to provide a holistic view

Comments

@cherniavskii
Copy link
Member

cherniavskii commented Mar 8, 2023

Summary 馃挕

The server-side data source will be implemented in a step-by-step manner, the issues it will be covered in are mentioned in the list below.

Motivation 馃敠

To make the integration of the data grid with users' data easier. Today we have https://mui.com/x/react-data-grid/row-updates/#lazy-loading but it could be a lot better.

Examples 馃寛

User requests

@cherniavskii cherniavskii added component: data grid This is the name of the generic UI component, not the React module! new feature New feature or request labels Mar 8, 2023
@cherniavskii
Copy link
Member Author

cc @mui/toolpad

@cherniavskii
Copy link
Member Author

cherniavskii commented Jun 21, 2023

We have recently explored supporting lazy loading for tree data and row grouping, and this seems to be extending the original description of the data source.

With the data source, we want to support at least these use cases:

  • Row grouping: lazy-load children rows.
    Currently, row grouping only works on the client side. This means that all the rows have to be fetched in advance. This is not scalable for large datasets.
  • Tree data: lazy-load children rows.
    Same as with row grouping, tree data only works on the client side. We have a demo allowing lazy load children rows, but it's not a part of the core package. We need to support this natively.
  • Hooking up server-side pagination, sorting, and filtering
    While it's possible to use server-side pagination, sorting, and filtering, each of these features has to be handled separately. We need to provide a way to hook up all of these features at once. It will also be beneficial for us if we have a centralized way of fetching data from the server (when not using client-side features).
    This effectively replaces paginationMode="server", sortingMode="server" and filterMode="server".

It鈥檚 preferable for the data source to be optional in the use cases that are currently supported by the data grid (like server filtering, sorting, pagination, etc.).

Benchmarks:

@MBilalShafi MBilalShafi added the umbrella For grouping multiple issues to provide a holistic view label Oct 31, 2023
@MBilalShafi MBilalShafi changed the title [data grid] Data source provider interface [data grid] Server-side data source Oct 31, 2023
@oliviertassinari oliviertassinari changed the title [data grid] Server-side data source [data grid] Improve Server-side support with new data source Jan 5, 2024
@Janpot
Copy link
Member

Janpot commented Jan 16, 2024

Just for cross-reference: We now have an implementation in Toolpad which supports pagination, filtering, sorting and all CRUD operations.

@avioralm
Copy link

@cherniavskii Any update on this development ?

@BrentFarese
Copy link

Seems like this is a priority for V7? Does the MUI team have any guidance on when this will land/be usable? I ask b/c our team is considering server-side pagination, sorting, filtering in the upcoming months and we'll have to roll our own solution or use this solution if it becomes available.

We are Premium users. Thanks!

@MBilalShafi
Copy link
Member

MBilalShafi commented Mar 17, 2024

Hey @BrentFarese, thank you for reaching out.
The first implementation of the server-side data source is already in progress and will include server-side pagination, sorting, filtering support, tree-data lazy-loading, and other related improvements.
I can't say how soon this will be available, but I can assure you it's one of the top priority areas for the team and hopefully, it will soon be available.

Meanwhile, may I know what specific features you currently use or plan to use in the future, do you also expect any advanced use cases like aggregation, row-grouping, etc. to be utilized in your project with server-side support?

CC @avioralm

@BrentFarese
Copy link

Hey @BrentFarese, thank you for reaching out. The first implementation of the server-side data source is already in progress and will include server-side pagination, sorting, filtering support, tree-data lazy-loading, and other related improvements. I can't say how soon this will be available, but I can assure you it's one of the top priority areas for the team and hopefully, it will soon be available.

Meanwhile, may I know what specific features you currently use or plan to use in the future, do you also expect any advanced use cases like aggregation, row-grouping, etc. to be utilized in your project with server-side support?

CC @avioralm

@MBilalShafi we don't plan to use advanced features for the initial implementation, just pagination, sorting, filtering support. I know timelines shift all the time, but is this work expected to land in 1-2 months or is it more like 4-6 months? Just gauging whether we wait for it or roll our own. Thanks!

@MBilalShafi
Copy link
Member

is this work expected to land in 1-2 months or is it more like 4-6 months

1-2 months is the more likely period for the first implementation (including server-side filtering, sorting, and pagination), however, I'm curious to know if meanwhile there's a barrier for you to keep using the server-side features already supported by the Grid.

The following features are already available in the Grid:

@BrentFarese
Copy link

is this work expected to land in 1-2 months or is it more like 4-6 months

1-2 months is the more likely period for the first implementation (including server-side filtering, sorting, and pagination), however, I'm curious to know if meanwhile there's a barrier for you to keep using the server-side features already supported by the Grid.

The following features are already available in the Grid:

No there is not a barrier to us using the existing server-side features. We might have to do that depending on when we implement server-side logic and when MUI releases the initial version. Would like to avoid having to migrate tho so we'll follow releases closely. Thanks!

@avioralm
Copy link

avioralm commented Apr 8, 2024

@MBilalShafi We are using the pro plan in our company and it is getting harder and harder to implement new tabular data features without the data source.
Can you share some time estimation for this feature?

@MBilalShafi
Copy link
Member

Hi @avioralm, thank you for reaching out.

I'd be interested to know more about specific features / use-cases you want to solve with the data source.

The first implementation of data source is expected to land in Q2 2024, however it will cover a subset of features with other advanced ones to follow up.

Here's the list of Server-side features targeted in first implementation of the data source.

  • Filtering
  • Sorting
  • Pagination
  • Loading plain data with data source
  • Tree data lazy loading

Does that cover your use case?

@avioralm
Copy link

avioralm commented Apr 8, 2024

@MBilalShafi
Yes it is fully covers my needs
especially the data tree implementation

@MBilalShafi MBilalShafi added the plan: Pro Impact at least one Pro user label Apr 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component: data grid This is the name of the generic UI component, not the React module! feature: Server integration Better integration with backends new feature New feature or request plan: Pro Impact at least one Pro user umbrella For grouping multiple issues to provide a holistic view
Projects
None yet
Development

No branches or pull requests

6 participants