使用此函数返回网格的列名称可以正常工作。拼接它返回的数组时会出现问题。
网格包含一个复选框作为第一列,因此我想从数组中删除它。这是代码。
var columnTitles = $(table).getGridParam('colNames');
columnTitles.splice(0,1);
当我多次使用此功能(它导出为excel)时出现问题。下次导出时,getGridParam函数实际上返回拼接的列名数组而不是实际的列名。它好像是通过引用或其他东西传递的。
进一步证明它正在这样做,我不会遇到全局变量或其他问题...如果我执行以下代码:
var columnTitles = $(table).getGridParam('colNames');
var columnTitles2 = $(table).getGridParam('colNames');
columnTitles.splice(0,1);
console.log(columnTitles2);
columnTitles2的值作为拼接数组返回。这可能是完全愚蠢的事情,但我在这里错过了什么?
答案 0 :(得分:1)
方法getGridParam
返回 jqGrid使用的内部参数的参考。如果您使用数组或对象,例如colNames
或colNames
,则应该小心。你需要为你的目的修改数组 ,但你不想更改jqGrid中的值,你应该首先复制数组,然后修改副本:
var columnTitles = $(table).jqGrid("getGridParam", "colNames").slice();
columnTitles.splice(0,1);
我使用slice
制作了jqGrid使用的内部colNames
的副本。