I'm using jqgrid 4.0 (via jquery struts 2 plugin) and jQuery layout plugin. The previous answer doesn't work for me. Only the function resizeGrid
was a problem though. Just replace the resizeGrid
function above with this. This will only resize one grid - the one whose id is gridtable
.
function resizeGrid(pane, $Pane, paneState) {
jQuery("#gridtable").jqGrid('setGridWidth',paneState.innerWidth - 2, 'true');
};
#gridtable
is the id of the table element you create for jqgrid
<div id="grid_container">
<table id="gridtable" class="mygrid"></table>
<div id="grid_pgr"></div>
</div>
Also, if you are using the jquery struts2 plugin, the grid is automatically generated using < script >
blocks within the < body >
(not in script blocks within < head >
). So, if you called layout()
and set triggerEventsOnLoad: true
in < head >
, you get a javascript error. To avoid this, you can add this script block somewhere after your grid(s) is declared.
<script type="text/javascript">
jQuery(document).ready(function () {
jQuery("#gridtable").jqGrid('setGridWidth',$myLayout.state.center.innerWidth - 2, 'true');
});
</script>
If you have more than one grid, you can access them using a class you have defined on the table element (see html snippet above), and then run the resizeGrid
method on each of them.