I want to dynamically add columns in a DataTable based on selected dropdown values using Dash. My table is created also dynamically based on two dropdowns (I have a callback that returns the whole DataTable definition).
I tried the example that is in Adding or removing columns section, but it works only when you try to add columns using a button.
This is my code for adding the columns:
@app.callback(
[Output(‘main_table’, ‘columns’)],
[Input(‘second_dropdown’, ‘value’)],
[State(‘main_data’, ‘data’), State(‘main_table’, ‘columns’)]
)
def add_columns(values, data, existing_columns):
if existing_columns is None:
return None
for value in values:
if value not in existing_columns:
existing_columns.append({
‘id’: value,
‘name’: value
})
print(existing_columns)
return existing_columns
The 'main_data' is stored in a json file which contains the data that should be displayed when the values in the second dropdown are changed. As result I expect to have a table which columns are as the number of selected dropdown values.
I'm new to Dash so I would really appreciate if someone can help me.