动态更改JQgrid列名称

Pok*_*uri 8 jqgrid

我只需要根据用户选择从选项列表中动态重命名JQgrid列.我怎样才能做到这一点?

小智 16

您可以使用以下语法:

jQuery("#grid1").jqGrid('setLabel', 0, 'NewLabel');
Run Code Online (Sandbox Code Playgroud)

这将在您的网格中将第一列名称更改为NewLabel,其中id = grid1.


Rob*_*lis 11

最新版本的jqGrid(4.1+ - 可能更早)似乎不再支持Galichev描述的基于列索引的setLabel方法,而是提供了基于columnName的方法:

jQuery("#grid1").jqGrid('setLabel', 'columnName', 'NewLabel');
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅jqGrid方法wiki.

我之前的答案未经编辑,因为这种方法在4.1之前的版本中可能有效.


Jus*_*ier 5

根据jqGrid文档,colNames在创建网格后无法更改.

但是,您可以使用多个列来模拟列名更改.然后你可以隐藏所有这些,除了将向用户显示的单个.当用户选择另一个时,只需交换选定的列.例如,如果有效列为[A,B,C,D],则可以从仅显示A开始.然后,如果用户选择C,则隐藏A并显示C.此方法的主要缺点是您需要复制但是,相同的数据到很多列.

更新

根据Galichev的回答,您可以使用setLabel方法重命名列标题.