UI-Grid Resize Columns
The resize columns plugin for UI-Grid provides the ability for each column to be resized.
You can install
npm i --save @ui-grid/resize-columns
Once you install you need to load the respective JS and CSS files as seen bellow:
Alternatively, if you are using Webpack or RequireJS to load your dependencies, you can do the following at the top of the file that needs it:
Once you load the file, you need to include 'ui.grid.resizeColumns' module in your angularJS app's dependencies, and add the ui-grid-resize-columns directive to your grid element.
You can set individual columns to not be resizeable, if you do this it is recommended that those columns have a fixed pixel width - otherwise they may get automatically resized to fill the remaining space if other columns are reduced in size, and there will be no way to reduce their width again.
When you resize a column any other columns with fixed widths, or that have already been resized, retain their width. All other columns resize to take up the remaining space. As long as there is at least one variable column left your columns won't reduce below the full grid width - but once you've resized all the columns then you can end up with the total column width less than the grid width.
If, for some reason, you want to use the ui-grid-resize-columns directive, but not allow column resizing, you can explicitly set the option to false. This prevents resizing for the entire grid, regardless of individual colDef options.
$ctrlgridOptions =enableColumnResizing: false;
You can also disable it on a column by setting the enableColumnResizing property to false in its column definition.
$ctrlgridOptions =enableColumnResizing: truecolumnDefs:field: 'name'field: 'gender' enableColumnResizing: falsefield: 'company';
You can find an example of this plugin in action on our website
Documentation for this plugin is provided in the api documentation, but we recommend that you pay special attention to the following: