Column widths incorrectly calculated based on previous rowData when using autoSize in AgGrid
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 42/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 技術スタック
- javascript, python
調査の方向性
提供された Dash と AgGrid の再現から始め、フィルター更新中の DashAgGrid.updateColumnWidths() と内部の gridApi.autoSizeAllColumns(skipHeader) 呼び出しを追跡します。完了条件は、列幅が以前のフィルター済みデータではなく最新の rowData に基づいて計算され、再現で古いサイズ調整が表示されなくなることです。
索引モデルが issue の本文から書いたものです。
説明
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
- 主要言語
- Python
- スター
- 239
- フォーク
- 48
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
plotly/dash-ag-grid のほかの issue
-
Sparklines always use AG Charts Enterprise, so a Grid-only Enterprise license shows a watermarkオープン
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
plotly/dash-ag-grid#485 · コメント 1 件 ·
-
documentation
難易度 3/5 1〜2日 初心者へのやさしさ 68/100
plotly/dash-ag-grid#484 · コメント 1 件 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 42/100
plotly/dash-ag-grid#483 ·
-
Bump to v36対応中かも @BSd3v が 110 日前に担当しました。 オープン
plotly/dash-ag-grid#481 · リアクション 1 件 · 担当者 2 名 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 35/100
plotly/dash-ag-grid#474 · コメント 1 件 ·
plotly/dash-ag-grid の issue をすべて見る
似ている issue
-
bump patch
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
autowarefoundation/autoware_carla_scenario#1321 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1〜3時間 初心者へのやさしさ 78/100
QuantConnect/Documentation#2838 ·
メンテナーはふだん 1 日以内に返信
-
get_all_subclasses must deduplicate by class identity対応中かも @Gambit-Checkmate が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 15 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
awslabs/route53-dynamic-dns-with-lambda#67 · コメント 1 件 ·