quasarframework / quasar

Quasar Framework - Build high-performance VueJS user interfaces in record time
https://quasar.dev
MIT License
25.95k stars 3.52k forks source link

Data table features #241

Closed Vaerum closed 7 years ago

Vaerum commented 7 years ago

Hi, like working with quasar and just looked into the new data table component. I'm missing some features before I can migrate to this new data table, therefore I would like to here if they are in the pipeline.

Best regards, Rasmus

rstoenescu commented 7 years ago

Exporting to CSV or excel is a good idea and will do it. Opening a new ticket for this (#244).

Server side request must be managed by the developer. There are multiple reasons for this:

  1. Flexibility. There are multiple ways of doing Ajax requests: through the router hooks for a page, or in page's VM lifecycle hooks, or something else fancy. Don't want to force any of these ways onto the developer.
  2. Code footprint should be as low as possible. Doing server side requests implies writing a home-grown Ajax solution or using an external library (axios, vue-resource, ...) which adds additional dependencies to any app. Also, choosing one external library is also not an option as some developer might want to use X ext lib while others Y ext lib. Forcing a lib limits the options for the developer which is to be avoided.
smolinari commented 7 years ago

I have to agree. The server side connectivity within Quasar depends on the server solution. For instance, I'd like to work on a Quasar-GraphQL API solution at some point. That would take Quasar in a totally different direction than someone who wants to use a REST interface.

@rstoenescu - I would also hope Quasar itself is built in such a way, that any server-side solution can be plugged into Quasar without any bigger difficulties?

Scott

rstoenescu commented 7 years ago

@smolinari Yes, of course. This is why I avoided implementing any server-side solution so far. Quasar should be able to work with any server-side solution.

hverlin commented 7 years ago

Hi,

Thanks for this nice component.

I don't know if I should open a new issue, but I think that there is a feature that should be added to allow this component to be used with a server.

Ideally, there should be:

What do you think?

(I have used a similar component for angular2 that is doing that http://www.primefaces.org/primeng/#/datatable)

rstoenescu commented 7 years ago

@hverlin Hi, no need to open another one. There's one already for this and it's on the roadmap anyway. Thanks for taking time to make the suggestions!

pablozabo commented 7 years ago

Hi @rstoenescu, is there a way to handle pagination changed event?

steven-pribilinskiy commented 7 years ago

@rstoenescu I can't find it on roadmap. We are in the process of selecting a UI framework for a new Vue app and we need "lazy tables". Vuetify already has that functionality https://vuetifyjs.com/components/data-tables#api

rstoenescu commented 7 years ago

@pribilinskiy DataTables are going to be revamped first thing when I get back from my vacation. There are many github tickets requesting features and all are going to be implemented.

roelandxyz commented 7 years ago

I also need external pagination. Is this a feature for the near future? Or is this already possible? I just need some events I guess.

smolinari commented 7 years ago

@r03 - The config property array contains pagination controls. See here:

http://quasar-framework.org/components/datatable.html#Config-Property

Scott

roelandxyz commented 7 years ago

Yes, but I need an event to start an ajax request to get the rest of the data. For me the purpose of pagination is to not request all the data on the first request.

smolinari commented 7 years ago

Ah, I see what you mean now. Depends on one's needs I guess. As I see it, currently data table is only built for modest amounts of data, but then it also offers its own filtering of that data set, which is a feature you'd lose with a triggered call for paged data. The data would need to be filtered on the server prior to it being called with a trigger.

Hmm....interesting dilemma.

I don't see the current data-table being able to support a server-side pagination. But, that might just be my own inexperience. I'd certainly like to see it possible, especially where the user/ userland could create her/ their own filter criteria to pass to the server. But, that is a totally different "list-view" kind of data-table and it would need to be smartly done, so any server-side client interface (like feathers, meteor or apollo client ) can be used with it.

Scott

roelandxyz commented 7 years ago

No problem. I'll keep using Vuetify for the moment then. But keep up the good work with Quasar. You have some nice components.

2bj commented 7 years ago

+1

creeve commented 6 years ago

+1

c0013r commented 6 years ago

+1 for more flexible pagination

rstoenescu commented 6 years ago

Flexible pagination in v0.15.