Подтвердить что ты не робот

JqGrid добавить новый столбец

Я обнаружил, что в jqGrid-плагине для JQuery я могу динамически добавлять строки, но могу ли я сделать то же самое со столбцами? Если бы была простая таблица, я бы предпочел сделать это вручную руками, но jqGrid хранит данные таблицы во множестве div.

4b9b3361

Ответ 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");