我只需要根据用户选择从选项列表中动态重命名JQgrid列。我怎么能这样做?
答案 0 :(得分:16)
您可以使用以下语法:
jQuery("#grid1").jqGrid('setLabel', 0, 'NewLabel');
这将使用id = grid1将第一列名称更改为网格中的NewLabel。
答案 1 :(得分:11)
最新版本的jqGrid(4.1+ - 可能更早)似乎不再支持Galichev描述的基于列索引的setLabel方法,而是提供了基于columnName的方法:
jQuery("#grid1").jqGrid('setLabel', 'columnName', 'NewLabel');
有关详细信息,请参阅jqGrid Methods wiki。
我之前的答案未经编辑,因为这种方法在4.1之前的版本中可能有效。
答案 2 :(得分:5)
根据jqGrid Documentation,创建网格后无法更改colNames
。
但是,您可以使用多个列来模拟列名更改。然后你可以隐藏所有这些,除了将向用户显示的单个。当用户选择另一个时,只需交换选定的列。例如,如果有效列为[A,B,C,D],则可以从仅显示A开始。然后,如果用户选择C,则隐藏A并显示C.此方法的主要缺点是您需要复制但是,相同的数据到很多列。
更新
根据Galichev的回答,您可以使用setLabel方法重命名列标题。
答案 3 :(得分:2)
* setLabel:* colname列的名称(此参数可以是从0开始的数字(列的索引)
但是索引参数不适用于4.1及更高版本。
$(tableId).jqgrid("setLabel", 0, "BBBBB");
尝试使用这些
$(tableId).setLabel("ColumnName", "AAAAA");
或
$(tableId).jqgrid("setLabel", "ColumnName", "BBBBB");
答案 4 :(得分:1)
JQGrid1.Columns.FromDataField(ColumnName).HeaderText = ColumnName;
答案 5 :(得分:0)
我给我的列名称为div
'<div id="DateDivId">Date</div>'
然后我按正常方式更改了它,getElementById,更改内容。