Я использую jqgrid 4.0 (через плагин jquery struts 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
для каждого из них.