Column widths incorrectly calculated based on previous rowData when using autoSize in AgGrid
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 42/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- javascript, python
Línea de trabajo
Comienza con la reproducción proporcionada de Dash y AgGrid y, a continuación, rastrea DashAgGrid.updateColumnWidths() y la llamada interna a gridApi.autoSizeAllColumns(skipHeader) durante una actualización del filtro. Se considera terminado cuando los anchos de las columnas se calculan a partir de la rowData más reciente en lugar de los datos filtrados anteriormente, y la reproducción ya no muestra un dimensionamiento obsoleto.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Description
I'm using AgGrid component with columnSize="autoSize" configuration.
When the data filter value is changed, the grid column widths are calculated based on the previous instead on the latest rowData.
It seems like the DashAgGrid.updateColumnWidths() (and the inner gridApi.autoSizeAllColumns(skipHeader)) are called before the most recent rowData is set.
Expected behavior would be that the column widths are always aligned with the latest rowData.
How to Reproduce
Package version: dash-ag-grid==31.2.0
After running the code below, adjust the range slide filter as it's showed in the screen recoding (video below the code section):
import dash
from dash import dcc, html, Input, Output, callback
import dash_ag_grid as dag
import pandas as pd
# Initialize the Dash app
app = dash.Dash(__name__)
# Sample data
df = pd.DataFrame({
'Column 1': [1, 2, 3, 4, 5, 6],
'Column 2': ['A', 'B', 'C', 'VeryLongStringInputCell_VeryLongStringInputCell_VeryLongStringInputCell', 'D', 'E'],
'Column 3': [10.5, 20.1, 30.2, 40.3, 50.4, 60.5],
})
# Layout
app.layout = html.Div([
html.H1('Grid Page'),
html.Div(id="outer_div_grid_id"),
dcc.RangeSlider(id="filter_column_1_dropdown", min=1, max=6, step=1, value=[1, 6]),
])
@callback(
Output("outer_div_grid_id", "children"),
Input("filter_column_1_dropdown", "value"),
)
def update_outer_grid(dropdown_value):
df_filtered = df[df["Column 1"].between(dropdown_value[0], dropdown_value[1], inclusive="both")]
return [dag.AgGrid(
id='grid_id',
columnDefs=[{'field': col} for col in df.columns],
columnSize="autoSize",
rowData=df_filtered.to_dict('records'),
defaultColDef={'resizable': True},
)]
if __name__ == "__main__":
app.run_server(debug=True, port=8051)
https://github.com/user-attachments/assets/ffa449c4-4219-42ef-bf0e-a152449b0c58
- Lenguaje dominante
- Python
- Estrellas
- 239
- Forks
- 48
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de plotly/dash-ag-grid
-
Sparklines always use AG Charts Enterprise, so a Grid-only Enterprise license shows a watermarkAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
plotly/dash-ag-grid#485 · 1 comentario ·
-
Legacy themes don't work offlineAbiertodocumentation
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
plotly/dash-ag-grid#484 · 1 comentario ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 42/100
plotly/dash-ag-grid#483 ·
-
Bump to v36Posiblemente ocupada @BSd3v la tomó hace 110 días. Abierto
plotly/dash-ag-grid#481 · 1 reacción · 2 asignados ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
plotly/dash-ag-grid#474 · 1 comentario ·
Todos los issues de plotly/dash-ag-grid
Issues similares
-
DBFS append mode silently overwrites existing filesPosiblemente ocupada @IlyaKhalafi la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
fsspec/filesystem_spec#2429 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
volcengine/OpenViking#7014 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
fedora-copr/copr#4600 ·
Los mantenedores suelen responder en 2 días
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
ansys/pydpf-core#3620 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día