最小寬度
預設情況下,欄的最小寬度為 50 像素。這是一個任意且易於記憶的值。若要變更欄的最小寬度,請使用 GridColDef
中提供的 minWidth
屬性。
彈性寬度
欄的流動性或響應性可以透過在 GridColDef
中設定 flex
屬性來實現。
flex
屬性接受介於 0 和 ∞ 之間的值。它的運作方式是將資料格中的剩餘空間,按照比例分配給所有彈性欄的 flex
值。
例如,考慮一個總寬度為 500 像素的格線,其中包含三欄:第一欄的 width: 200
;第二欄的 flex: 1
;第三欄的 flex: 0.5
。第一欄將為 200 像素寬,剩下 300 像素。flex: 1
的欄是 flex: 0.5
的兩倍大,這表示最終尺寸將為:200 像素、200 像素、100 像素。
若要為 flex
欄設定最小和最大寬度,請在 GridColDef
中設定 minWidth
和 maxWidth
屬性。
調整大小
預設情況下,資料格允許透過拖曳欄分隔線的右側部分來調整所有欄的大小。
若要防止調整欄的大小,請在 GridColDef
中設定 resizable: false
。或者,若要停用所有欄的大小調整,請設定屬性 disableColumnResize={true}
。
若要限制欄調整大小到小於特定寬度,請在 GridColDef
中設定 minWidth
屬性。
若要限制欄調整大小到大於特定寬度,請在 GridColDef
中設定 maxWidth
屬性。
若要擷取欄寬度變更,有兩個回呼函式會被呼叫
onColumnResize
:在調整欄大小時呼叫。onColumnWidthChange
:在欄寬度變更後呼叫,但在調整大小期間不會呼叫。
自動調整大小
資料格允許根據欄的內容自動調整欄的尺寸。自動調整大小預設為啟用。若要關閉它,請將 disableAutosize
屬性傳遞給資料格。
自動調整大小可以透過以下方法之一使用
- 新增
autosizeOnMount
屬性, - 在格線上雙擊欄標題分隔線,
- 呼叫
apiRef.current.autosizeColumns(options)
API 方法。
您可以直接在呼叫 API 方法時傳遞選項。若要為其他兩種方法配置自動調整大小,請在 autosizeOptions
屬性中提供選項。
請注意,對於分隔線雙擊方法,autosizeOptions.columns
將被使用者雙擊的相應欄替換。
在所有情況下,colDef.minWidth
和 colDef.maxWidth
選項都將被遵守。
<DataGrid
{...otherProps}
autosizeOptions={{
columns: ['name', 'status', 'createdBy'],
includeOutliers: true,
includeHeaders: false,
}}
/>
非同步自動調整大小
來自 apiRef
的 autosizeColumns
方法也可以用於在指定的事件中調整欄的大小,例如當從伺服器接收列資料時。
使用動態列高的自動調整大小
欄的自動調整大小與 動態列高 功能相容。
使用群組列的自動調整大小
當使用 列群組 時,您可以利用 autosizeColumns
方法動態調整展開列的欄寬。以下示範顯示如何訂閱 rowExpansionChange
事件。然後提供的處理常式函式會呼叫來自 gridApi 的 autosizeColumns
方法。