跳到主要內容
+

資料格 - 欄的尺寸

自訂欄的尺寸和調整大小行為。

欄寬

預設情況下,欄的寬度為 100 像素。這是一個任意且易於記憶的值。若要變更欄的寬度,請使用 GridColDef 中提供的 width 屬性。

按下 Enter 鍵開始編輯

最小寬度

預設情況下,欄的最小寬度為 50 像素。這是一個任意且易於記憶的值。若要變更欄的最小寬度,請使用 GridColDef 中提供的 minWidth 屬性。

按下 Enter 鍵開始編輯

彈性寬度

欄的流動性或響應性可以透過在 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 中設定 minWidthmaxWidth 屬性。

調整大小

預設情況下,資料格允許透過拖曳欄分隔線的右側部分來調整所有欄的大小。

若要防止調整欄的大小,請在 GridColDef 中設定 resizable: false。或者,若要停用所有欄的大小調整,請設定屬性 disableColumnResize={true}

若要限制欄調整大小到小於特定寬度,請在 GridColDef 中設定 minWidth 屬性。

若要限制欄調整大小到大於特定寬度,請在 GridColDef 中設定 maxWidth 屬性。

按下 Enter 鍵開始編輯

若要擷取欄寬度變更,有兩個回呼函式會被呼叫

  • onColumnResize:在調整欄大小時呼叫。
  • onColumnWidthChange:在欄寬度變更後呼叫,但在調整大小期間不會呼叫。

自動調整大小

資料格允許根據欄的內容自動調整欄的尺寸。自動調整大小預設為啟用。若要關閉它,請將 disableAutosize 屬性傳遞給資料格。

自動調整大小可以透過以下方法之一使用

  • 新增 autosizeOnMount 屬性,
  • 在格線上雙擊欄標題分隔線,
  • 呼叫 apiRef.current.autosizeColumns(options) API 方法。

您可以直接在呼叫 API 方法時傳遞選項。若要為其他兩種方法配置自動調整大小,請在 autosizeOptions 屬性中提供選項。

請注意,對於分隔線雙擊方法,autosizeOptions.columns 將被使用者雙擊的相應欄替換。

在所有情況下,colDef.minWidthcolDef.maxWidth 選項都將被遵守。

<DataGrid
  {...otherProps}
  autosizeOptions={{
    columns: ['name', 'status', 'createdBy'],
    includeOutliers: true,
    includeHeaders: false,
  }}
/>

非同步自動調整大小

來自 apiRefautosizeColumns 方法也可以用於在指定的事件中調整欄的大小,例如當從伺服器接收列資料時。

使用動態列高的自動調整大小

欄的自動調整大小與 動態列高 功能相容。

使用群組列的自動調整大小

當使用 列群組 時,您可以利用 autosizeColumns 方法動態調整展開列的欄寬。以下示範顯示如何訂閱 rowExpansionChange 事件。然後提供的處理常式函式會呼叫來自 gridApi 的 autosizeColumns 方法。

按下 Enter 鍵開始編輯