Я использую jqgrid 4.0 (с помощью JQuery плагин распорки 2) и JQuery плагин макета. Предыдущий ответ не работает для меня. Однако проблема была только в функции resizeGrid
. Просто замените функцию resizeGrid
выше. Это изменит только одну сетку - ту, чей идентификатор равен gridtable
.
function resizeGrid(pane, $Pane, paneState) {
jQuery("#gridtable").jqGrid('setGridWidth',paneState.innerWidth - 2, 'true');
};
#gridtable
является идентификатор элемента таблицы вы создаете для jqgrid
<div id="grid_container">
<table id="gridtable" class="mygrid"></table>
<div id="grid_pgr"></div>
</div>
Кроме того, если вы используете JQuery Struts2 плагин, сетка автоматически генерируется с использованием <script>
блоков в <body>
(не в сценариях блоков в пределах <head>
). Итак, если вы вызвали layout()
и установили triggerEventsOnLoad: true
в <head>
, вы получите ошибку javascript. Чтобы этого избежать, вы можете добавить этот блок сценария где-нибудь после объявления вашей сетки.
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery("#gridtable").jqGrid('setGridWidth',$myLayout.state.center.innerWidth - 2, 'true');
});
</script>
Если у вас есть более чем одной сетки, вы можете получить к ним доступ с помощью класса вы определили на элемент таблицы (см фрагмент кода HTML выше), а затем запустить resizeGrid
метод на каждом из них.
Спасибо, это привело меня к нужному мне ответу. – Horacio
Добро пожаловать, рад помочь –
@ JustinEthier, как мы можем сделать это как жидкую сетку, например, твиттер-бутстрап-таблицу. пример здесь http://192.69.216.111/themes/preview/ace/tables.html –