динамическое изменение имени столбца JQgrid - PullRequest
8 голосов
/ 13 марта 2010

Мне просто нужно динамически переименовать столбец JQgrid в соответствии с выбором пользователя из списка опций. Как я могу это сделать?

Ответы [ 6 ]

16 голосов
/ 15 декабря 2010

Вы можете использовать этот синтаксис:

jQuery("#grid1").jqGrid('setLabel', 0, 'NewLabel');

Это изменит имя первого столбца на NewLabel в вашей сетке с id = grid1.

11 голосов
/ 04 ноября 2011

Последняя версия jqGrid (4.1+ - возможно, ранее) больше не поддерживает метод setLabel, основанный на индексах столбцов, описанный Галичевым, вместо этого предоставляется подход на основе columnName:

jQuery("#grid1").jqGrid('setLabel', 'columnName', 'NewLabel');

См. Вики jqGrid Methods для получения дополнительной информации.

Я оставил предыдущий ответ неотредактированным, так как этот подход может быть действителен в версиях до 4.1.

5 голосов
/ 14 марта 2010

Согласно документации jqGrid , colNames нельзя изменить после создания сетки.

Однако вы можете смоделировать изменение имени столбца, используя несколько столбцов. Затем вы можете скрыть все из них, кроме одного, который будет показан пользователю. Когда пользователь выбирает другой, просто поменяйте местами в выбранном столбце. Например, если допустимыми столбцами являются [A, B, C, D], вы можете начать с показа только A. Затем, если пользователь выберет C, скройте A и покажите C. Основной недостаток этого подхода заключается в том, что вам нужно будет скопировать однако одни и те же данные для многих столбцов.

Обновление

Согласно ответу Галичева, вы можете использовать метод setLabel для переименования заголовка столбца.

2 голосов
/ 07 марта 2013

* setLabel: * colname имя столбца (этот параметр может быть числом (индексом столбца), начиная с 0

Однако параметр индекса не работает с версией 4.1 и выше.

Jqgrid uptop версия 4.0

 $(tableId).jqgrid("setLabel", 0, "BBBBB");

Jqgrid версии 4.1 и выше

Попробуйте использовать эти

  $(tableId).setLabel("ColumnName", "AAAAA");

или

  $(tableId).jqgrid("setLabel", "ColumnName", "BBBBB");
1 голос
/ 19 октября 2012
JQGrid1.Columns.FromDataField(ColumnName).HeaderText = ColumnName;
0 голосов
/ 23 октября 2015

Я дал название столбцу div

'<div id="DateDivId">Date</div>'

Тогда я просто изменил его обычным способом, getElementById, изменил содержимое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...