Why does Dash have its own datatable library?

Hello,

I have started using Dash in Python, and I think it’s a really great product. Thanks for making it openly available !

What I most like of Dash and Plotly is that I can develop my plots functions in Jupyter notebooks, move then to a python module, and then include them both in my notebooks and in my Dash applications.

Now I would like to make the same for tables. But I find that, in the notebook, I can use QGrid by Quantopian or ipyaggrid by Louis Raison to display a table, but in Dash I have to use dash-datatable.

Note that my previous experience with Dash-like framework was with Shiny. There, I found very useful to have the same table library (DT, based on datatables.net) to display tables in both apps and notebooks.

I am thus wondering

  • if there are plans to make dash-datatable available in the notebook
  • why Plotly chosed to develop its own table library, when a series of javascript table libraries are already available: datatables.net, aggrid, and footable to name only a few,
  • and if there is some material on how to implement a new table component for Dash

Thanks for answering this!
Best regards,

Marc

2 Likes

Hi @mwouts ,

I don’t have anything to do with dash-table, so I don’t know about design decisions or future plans, but I thought you might be interested in jupyterlab-dash, which lets you develop apps in a notebook in jupyterlab and run them in a separate tab. That might help you prototyping things in a notebook environment while building an app?

As for how to build your own table component, check out the dash-component-boilerplate and the Dash docs on building your own components.

Hope that helps

1 Like

Thanks @tcbegley for the helpful answer.

The links are great and I had a nice time reading them. React for Python developers, which appears in the doc on building new components, is another very nice article - especially for me as I know very little javascript.

Now I will experiment with a few other table components, starting in the notebook with which I am a bit more familiar, and report here if I find anything interesting.

Hi everyone,

My attemps to use datatables from within the notebook have given itables, which is demoed here: https://mwouts.github.io/itables/ . I hope you like it!

Now I would like to also use datatables within dash, but I do not have a minimal working example yet. By the way, I have read that Dash is based on react, while datatables is a plugin for jQuery. Does that mean that attempting to use datatables within Dash is hopeless?

Best regards,

Marc

2 Likes

Combining jQuery and React is generally a bad idea, but that said, I’ve seen guides on how to embed jQuery within React by disabling the React renderer for certain elements, so it’s clearly not hopeless. It would involve creating your own Dash component that wraps datatables. I guess it depends on how much pain you’re happy to inflict upon yourself maybe.

The Dash tables component is under active development, so if there’s specific features you think are missing, perhaps submit an issue? Hopefully the gap between the two packages’ will decrease over time.

It would be great if it were possible to use (something like) iptables in Dash indeed, because of the huge flexibility of DataTables and its existing community! +1