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