from dash import Dash, html
import dash_ag_grid as dag
import pandas as pd
app = Dash(__name__)
df = pd.read_csv(
"https://raw.githubusercontent.com/plotly/datasets/master/ag-grid/olympic-winners.csv"
)
rowData = df.to_dict('records')
columnDefs = [
{ 'field': 'age', 'filter': 'agNumberColumnFilter' },
{ 'field': 'country', 'filter': 'TextAutoCompleteFilter', 'floatingFilter': True, 'minWidth': 150 },
{ 'field': 'year', 'filter': {'function': 'YearFilter'}},
{
'field': 'date',
'minWidth': 130,
'filter': 'agDateColumnFilter',
'filterParams': {
'comparator': {'function':'dateComparator'},
},
},
{ 'field': 'sport' },
{ 'field': 'gold', 'filter': 'agNumberColumnFilter' },
{ 'field': 'silver', 'filter': 'agNumberColumnFilter' },
{ 'field': 'bronze', 'filter': 'agNumberColumnFilter' },
{ 'field': 'total', 'filter': 'agNumberColumnFilter' },
]
defaultColDef = {
'editable': True,
'sortable': True,
'flex': 1,
'minWidth': 100,
'filter': True,
'resizable': True,
}
app.layout = html.Div(
[
html.H3("See the custom filter Autocomplete component in the Country column"),
dag.AgGrid(
id="grid",
columnDefs=columnDefs,
rowData=rowData,
defaultColDef=defaultColDef,
),
]
)
if __name__ == "__main__":
app.run(host="127.0.0.1", debug=True)