# FileDownload widget with Tabulator

**URL:** <https://discourse.holoviz.org/t/filedownload-widget-with-tabulator/6927>\
**Category:** Panel\
**Tags:** filedownload, panel\
**Created:** [March 5, 2024, 6:48pm UTC](https://discourse.holoviz.org/t/filedownload-widget-with-tabulator/6927 "2024-03-05T18:48:14Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![vpoduri](https://discourse.holoviz.org/letter_avatar_proxy/v4/letter/v/da6949/32.png) [@vpoduri](https://discourse.holoviz.org/u/vpoduri)\
**Post date:** [March 5, 2024, 6:48pm UTC](https://discourse.holoviz.org/t/filedownload-widget-with-tabulator/6927/1 "2024-03-05T18:48:14Z")

</div>

I am trying to display a table with the Tabulator widget and a download button side-by-side. I can get it to work, but the download button appears first, before the table. Is there a way to enforce the order of widget appearance in the pn.Row() call?

MWE:

```auto
import numpy as np, pandas as pd
from io import StringIO
import panel as pn

pn.extension('tabulator')

df = pd.DataFrame({'A':[1,2,3],'B':['x','y','z']})
sio = StringIO()
df.to_csv(sio,index=False)
_ = sio.seek(0)

T1 = pn.widgets.Tabulator(df,show_index=False,theme='modern',disabled=True)
button = pn.widgets.FileDownload(file=sio,
                                 label = 'Download Table',
                                 filename='table.csv',
                                 auto = False,
                                 button_type='primary',
                                 width=150,
                                align='start',
                                margin = 25)
pn.Row(T1,button)

```

---

<div class="post-metadata">

**Author:** ![ahuang11](https://discourse.holoviz.org/user_avatar/discourse.holoviz.org/ahuang11/32/4947_2.png) [@ahuang11](https://discourse.holoviz.org/u/ahuang11)\
**Post date:** [March 5, 2024, 7:51pm UTC](https://discourse.holoviz.org/t/filedownload-widget-with-tabulator/6927/2 "2024-03-05T19:51:03Z")

</div>

Seems to work with your code:  
 ![image](https://discourse.holoviz.org/uploads/default/original/2X/c/cf3aafa4bb3fb4fac00fdc354b286d65ece1b29b.png)

---

<div class="post-metadata">

**Author:** ![vpoduri](https://discourse.holoviz.org/letter_avatar_proxy/v4/letter/v/da6949/32.png) [@vpoduri](https://discourse.holoviz.org/u/vpoduri)\
**Post date:** [March 5, 2024, 7:56pm UTC](https://discourse.holoviz.org/t/filedownload-widget-with-tabulator/6927/3 "2024-03-05T19:56:56Z")

</div>

Sorry, I should have been clearer. The button appears before the table, and then moves over to the right when the table is drawn. Not a major issue but a visual annoyance.

---

<div class="post-metadata">

**Author:** ![Marc](https://discourse.holoviz.org/user_avatar/discourse.holoviz.org/marc/32/24_2.png) [@Marc](https://discourse.holoviz.org/u/Marc)\
**Post date:** [March 23, 2024, 1:06pm UTC](https://discourse.holoviz.org/t/filedownload-widget-with-tabulator/6927/4 "2024-03-23T13:06:38Z")

</div>

What you see is the page rendering. And apparently the rendering the table takes a bit of time.

I would say “live with it”. With the small example its not a problem. But if its really a large loading delay try posting a video and minimum, reproducible example. Then I could take a second look.
