Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
动态更改JQgrid列名_Jqgrid - Fatal编程技术网

动态更改JQgrid列名

动态更改JQgrid列名,jqgrid,Jqgrid,我只需要根据用户从选项列表中的选择动态重命名JQgrid列。如何才能做到这一点?根据,创建网格后,colNames不能更改 但是,您可以通过使用多个列来模拟列名更改。然后,您可以隐藏除一个将显示给用户的选项之外的所有选项。当用户选择另一列时,只需交换选定列。例如,如果有效列为[A、B、C、D],那么您可以从仅显示A开始。然后,如果用户选择C,则隐藏A并显示C。但是,这种方法的主要缺点是,您需要将相同的数据复制到多个列 更新 根据Galichev的回答,您可以使用该方法重命名列标题。您可以使用以下

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

根据,创建网格后,
colNames
不能更改

但是,您可以通过使用多个列来模拟列名更改。然后,您可以隐藏除一个将显示给用户的选项之外的所有选项。当用户选择另一列时,只需交换选定列。例如,如果有效列为[A、B、C、D],那么您可以从仅显示A开始。然后,如果用户选择C,则隐藏A并显示C。但是,这种方法的主要缺点是,您需要将相同的数据复制到多个列

更新


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

您可以使用以下语法:

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

这将在id=grid1的网格中将第一列名称更改为NewLabel。

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

jQuery("#grid1").jqGrid('setLabel', 'columnName', 'NewLabel');
有关更多信息,请参阅

我没有编辑上一个答案,因为这种方法在4.1之前的版本中可能有效。

*setLabel:*colname列的名称(此参数可以是一个从0开始的数字(列的索引))

JQGrid1.Columns.FromDataField(ColumnName).HeaderText = ColumnName;
但是,索引参数不适用于4.1及以上版本

Jqgrid uptop版本4.0 Jqgrid版本4.1及以上 试试这些

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


我给了我的列名一个div

'<div id="DateDivId">Date</div>'
“日期”
然后我用普通的方式修改了它,getElementById,修改了内容

  $(tableId).jqgrid("setLabel", "ColumnName", "BBBBB");
'<div id="DateDivId">Date</div>'