使用此函数返回网格的列名很好。当拼接它返回的数组时,就会出现这个问题。
网格包括一个复选框作为第一列,所以我想从数组中删除它。这是密码。
var columnTitles = $(table).getGridParam('colNames');
columnTitles.splice(0,1);
当我多次使用这个函数(它是导出到excel)时,问题就出现了。下一次导出时,getGridParam函数实际上返回的是列名的拼接数组,而不是实际的列名。就好像它是被引用的或者什么的。
进一步证明它是这样做的,而且我不仅对全局变量或something...if有问题,我执行以下代码:
var columnTitles = $(table).getGridParam('colNames');
var columnTitles2 = $(table).getGridParam('colNames');
columnTitles.splice(0,1);
console.log(columnTitles2);
columnTitles2的值作为拼接数组返回。这可能是完全愚蠢的事,但我在这里错过了什么呢?
发布于 2014-08-28 14:20:22
方法getGridParam
返回-- jqGrid使用的内部参数的引用。如果您使用数组或对象(例如colNames
或colNames
),您应该小心。您需要修改数组,但不想更改jqGrid中的值,您应该首先修改数组的复制,然后修改副本:
var columnTitles = $(table).jqGrid("getGridParam", "colNames").slice();
columnTitles.splice(0,1);
我使用slice
来复制jqGrid使用的内部colNames
。
https://stackoverflow.com/questions/25558700
复制相似问题