dash-table icon indicating copy to clipboard operation
dash-table copied to clipboard

[BUG] Editable table with dropdown presentation breaks with virtualization

Open mirkomiorelli opened this issue 6 years ago • 2 comments

Hi there,

similar to https://community.plot.ly/t/dash-data-table-virtualization-completely-broken-with-an-editable-table/28565 (also here #583 and solved here #584 ), but now with dropdown in editable cell. An example:

app = dash.Dash(__name__, external_stylesheets=['https://codepen.io/chriddyp/pen/bWLwgP.css'])

app.layout = html.Div([
    dash_table.DataTable(
        id='table',
        columns=(
                [{'id': 'col1', 'name': 'col1', 'editable': False}] +
                [{'id': 'col2', 'name': 'col2', 'type': 'numeric', 'presentation':'dropdown'}]
        ),
        data=[
            {'col1': i, 'col2': i}
            for i in range(100)
        ],
        style_table={
            'height': 240,
            'width': 290,
            'overflowY': 'auto'
        },
        style_cell_conditional=[
            {'if': {'column_id': 'col1'},
             'width': '55%'},
            {'if': {'column_id': 'col2'},
             'width': '45%'}
        ],
        dropdown={'col2':{'options':[{'label':str(i),'value':i} for i in range(100)]}},
        editable=True,
        page_action='none',
        virtualization=True
    )
]
)

app.run_server(debug=True)

Editing the first few rows works fine. Scrolling down and editing some other row throws the following error:

Invalid argument `data` passed into DataTable with ID "table".
Expected an array.
Was supplied type `object`.

I have dash v1.4.1, dash-core-components v1.3.1, dash-renderer 1.1.2 and dash-table v4.4.1 installed and Chrome 78.0.3904.108 (Official Build) (64-bit).

Solvable bug?

Thanks for the great work!

mirkomiorelli avatar Dec 11 '19 22:12 mirkomiorelli

Maybe related, filtering also does not work with virtualization.

mirkomiorelli avatar Dec 18 '19 16:12 mirkomiorelli

Will this be addressed? reached the same point as you @mirkomiorelli , exact same error.

Have you managed to work around it?

vitoravancini avatar Aug 02 '21 19:08 vitoravancini