Reputation: 1413
I've setup an ag-grid in an Angular application. I'm trying to make the single column fill in the whole width of the grid.
but then I get this.
<div class="row" ng-controller="ChapterCtrl" ng-init="currentUNID='9D2DFE6D50C53A98C1257F5900337F37'">
<div class="col-sm-4">
<div >
<div ag-grid="gridOptions" class="ag-fresh" style="height: 800px"></div>
</div>
</div>
var columnDefs = [
{headerName: "Subject", field: "Subject"}
];
$scope.gridOptions = {
columnDefs: columnDefs,
angularCompileRows: true,
Do you have any hints for me? The documentation https://www.ag-grid.com/javascript-grid-width-and-height/ didn't help me.
Many thanks!
Upvotes: 8
Views: 17627
Reputation: 1568
flex
property wasn't working for me until I added suppressSizeToFit
(true) and resizable
(false) properties to the last column definition.
Upvotes: 3
Reputation: 260
Try 'flex' column property:
{ headerName: 'Test', flex: 1}
You can also use this to expand only last column.
Upvotes: 14
Reputation: 7197
What I'd suggest is set the grid to have a % or use vh for its width, then the grid will grow/shrink according to the parent container.
To make the columns change size, you can hook into an event an resize each time the grid size changes:
var gridOptions = {
onGridSizeChanged: () => {
gridOptions.api.sizeColumnsToFit();
}
...other gridOptions
};
Upvotes: 16
Reputation: 7358
If you already know the width of the grid, then set that same width in the columnDefs:
var columnDefs = [
{headerName: "Subject", field: "Subject", width: 350//width in pixels}
If your grid is set up to have dynamic width depending on the users window size then you might be able to get the width of the table element, then put that width into the columnDefs afterwards.
Edit:
For responsive design:
1) add an id to make lookup easy:
<div id="myTable" ag-grid="gridOptions" class="ag-fresh" style="height: 800px"></div>
2) find the table then find it's width:
var colWidth = document.getElementById('myTable').clientWidth;
or if you prefer jquery:
var colWidth = $('#myTable').width()
3) set the width in the columnDefs:
var columnDefs = [
{headerName: "Subject", field: "Subject", width: colWidth}
Upvotes: 1