jqGrid для динамического изменения порядка столбцов по имени индекса

Я хочу изменить порядок столбцов jqGrid column name или column index (string) не column index (int), Я видел этот API

$("#list").jqGrid("remapColumns", [0,1,12,3,14,5,6,7,8,11,2], true);

Он использует индексный номер столбца, но проблема в том, что после изменения порядка jqGrid выполняет переиндексацию и изменение индекса. Поэтому я ищу API, который принимает имя столбца вместо целочисленного значения.

Это мой код, чтобы получить имя столбца

var columnModels = grid.jqGrid('getGridParam', 'colModel');
var user_visibalColumn = [];
for (var columnModelIndex in columnModels) {
    var columnModel = columnModels[columnModelIndex];
    if (!columnModel.hidden) {
        user_visibalColumn.push(columnModel.name);         
    }
}
//console.log(user_visibalColumn); 

Так что через некоторое время на событие, которое я хочу вызвать getGridParam с вышеупомянутым user_visibalColumn столбец массива.

Это возможно? Если нет, то есть способ добавить col-id тега данных HTML, чтобы я мог получить col-id.

Я видел этот ответ, но я не могу понять, как просто реализовать restoreColumnState,

Любое предложение будет очень полезным.

Благодарю.

1 ответ

Решение

Пожалуйста, напишите, какие версии jqGrid вы используете (или можете использовать) и из какой ветки jqGrid. Более того, важно написать, какой форк jqGrid вы используете ( бесплатный jqGrid, коммерческий Gurrido jqGrid JS или старый jqGrid в версии <=4.7).

Я согласен с проблемой использования индексов столбцов вместо имен столбцов. Это причина, по которой я сделал много изменений в бесплатном форке jqGrid, который я разрабатываю, начиная с превращения основного старого форка в коммерческий (см. Пост) в версии 4.7.1. Я ввел метод remapColumnsByName вместе со старым методом remapColumns, Ответ предоставляет демо, которое демонстрирует использование remapColumnsByName, Более того, бесплатный jqGrid содержит в основном имена столбцов, а не индексы столбцов, и имеет вспомогательный параметр. iColByName, который помогает получить текущий индекс столбца по имени столбца.

Я рекомендую вам обновить jqGrid, который вы используете, до текущей (4.13.4) версии бесплатной jqGrid и использовать remapColumnsByName,

Другие вопросы по тегам