私はjqgrid4.0(jquery struts 2プラグイン経由)とjQueryレイアウトプラグインを使用しています。前の答えは私にはうまくいきません。機能だけresizeGrid
が問題でした。resizeGrid
上記の関数をこれに置き換えるだけです。これにより、1つのグリッド(IDが。のグリッド)のみのサイズが変更されgridtable
ます。
function resizeGrid(pane, $Pane, paneState) {
jQuery("#gridtable").jqGrid('setGridWidth',paneState.innerWidth - 2, 'true');
};
#gridtable
jqgrid用に作成するテーブル要素のIDです
<div id="grid_container">
<table id="gridtable" class="mygrid"></table>
<div id="grid_pgr"></div>
</div>
また、jquery struts2プラグインを使用している場合、グリッドは(内のスクリプトブロックではなく)< script >
内のブロックを使用して自動的に生成されます。したがって、を呼び出して設定すると、javascriptエラーが発生します。これを回避するには、グリッドが宣言された後のどこかにこのスクリプトブロックを追加できます。< body >
< head >
layout()
triggerEventsOnLoad: true
< head >
<script type="text/javascript">
jQuery(document).ready(function () {
jQuery("#gridtable").jqGrid('setGridWidth',$myLayout.state.center.innerWidth - 2, 'true');
});
</script>
複数のグリッドがある場合は、テーブル要素で定義したクラスを使用してそれらにアクセスし(上記のhtmlスニペットを参照)、resizeGrid
それぞれでメソッドを実行できます。