Я обнаружил, что в jqGrid-плагине для JQuery я могу динамически добавлять строки, но могу ли я сделать то же самое со столбцами? Если бы была простая таблица, я бы предпочел сделать это вручную руками, но jqGrid хранит данные таблицы во множестве div.
JqGrid добавить новый столбец
Ответ 1
Невозможно добавить столбец в jqGrid динамически. Вы должны воссоздать всю сетку с colModel
с одним столбцом. Если вы используете отдельный colNames
, размер массива также должен быть увеличен. Вы можете использовать GridDestroy, например, чтобы уничтожить существующую сетку. Возможно использование jQuery.Remove
или jQuery.Empty
.
ОБНОВЛЕНО. Мне кажется, что GridUnload лучше подходит для вашего размещения. Я создал небольшую демонстрацию , которая демонстрирует, как можно воссоздать сетку. Чтобы иметь возможность использовать GridUnload или GridDestroy, вы должны подтвердить что вы включаете grid.custom.js в свой проект (если вы используете версию разработчика jqGrid) или вы отметили "Custom" "Additinal methods" на jqGrid загрузите страницу.
ОБНОВЛЕНО 2. Можно использовать метод addColumn
, который можно загрузить из здесь (см. jQuery.jqGrid.addColumn.js
). Этот метод все еще находится в бета-фазе. Можно найти некоторые демонстрации, в которых показано, как использовать метод здесь (примеры addColumnX.htm
).
Ответ 2
просто используйте
$("#gridid").jqGrid('GridUnload');
он полностью выгрузит сетку и будет готов снова загрузить новые столбцы и данные.
Ответ 3
rownumbers: true, а также rownumWidth: 25 (по умолчанию)
Ответ 4
Вы можете просто установить новую модель столбца и перезагрузить сетку:
var newColModel = $("#myGrid").jqGrid("getGridParam", "colModel").concat({ /* new column attributes */ });
$("#myGrid").jqGrid("setGridParam", {colModel: newColModel}).trigger("reloadGrid");