私は4つの単語を含むいくつかの列があります。つまり、取引前フォローアップ、取引後フォローアップ、およびそれらのいくつかは3単語です。以下のCSSを試して、テキストを複数行に折り返しました。
::ng-deep .ag-theme-material .ag-header-cell-label .ag-header-cell-text{
white-space: normal;
overflow-wrap: break-Word;
}
HTML
<ag-grid-angular class="ag-theme-material" [rowData]="rowData" [columnDefs]="columnDefs" [overlayLoadingTemplate]="overlayLoadingTemplate" [domLayout]="domLayout" [enableSorting]="true" (gridReady)="onGridReady($event)" (gridOptions)="gridOptions" >
</ag-grid-angular>
ただし、列ヘッダーは変わりません。列ヘッダーのテキストを複数行に折り返したいと思いました。とにかくこれを行うにはありますか?
注:cellStyle: {'white-space': 'normal'}
を使用してコンテンツをラップできます
{headerName: 'headername', field: 'headerfield', autoHeight:true, width: 100, cellStyle: {'white-space': 'normal'}},
しかし、私はヘッダーをラップしたかった。
次のstackblitzの例を確認してください。
https://stackblitz.com/edit/angular-ag-grid-angular-xmbm3p?embed=1&file=styles.css
グローバルスタイルシートで次を適用しました...コンポーネントcssで::ng-deep
を使用できます。これはag-grid
でフォークして最初に見つけたstackblitzであり、私のものではないため、コンポーネントはありませんでした。使用するCSS。
.ag-header-cell-label .ag-header-cell-text {
white-space: normal !important;
}
次のピースは、プロパティheaderHeight
を使用することです
this.gridOptions = <GridOptions>{
headerHeight:75,
残念ながらこの部分は避けられません...また、Wordの折り返し要件に基づいてヘッダーの高さを動的にすることもできません。
top
スタイルで動的に定義されるためです。 ::ng-deep
を使用してヘッダーの高さを調整しても、top
プロパティによって計算されるため、コンテンツ領域のheaderHeight
は動的に下に移動しません...未定義の場合、デフォルトは25px
したがって、コンテンツ領域のtop
も25px
です。::ng-deep
..で高さを変更するとヘッダーと重なるため、::ng-deep
が本当に機能したかどうかはわかりません...視覚的にはis ...ヘッダーがコンテンツ領域の下に拡張されるため。申し訳ありませんが、これは可能な限り近くなります...すべての要素の調整、DOM操作による動的ヘッダーの高さに基づくtop
などのシフトダウンなど、醜くなりすぎます...そして動的にヘッダーの高さを必要とする場合、これはショーストッパーです... ag-grid
の代わりとして他のオプションを検討するのが最善です。
https://www.ag-grid.com/javascript-grid-column-header/#headerHeight
期待される結果を得るには、その特定の列headerNameの列定義で改行タグ-brを使用する以下のオプションを使用します
{headerName: 'Pre<br>Trading<br> Follow<br> Up', field: 'headerfield', autoHeight:true, width: 100, cellStyle: {'white-space': 'normal'}}