使用此函数返回网格的列名可以正常工作。拼接返回的数组时会出现问题。
网格包括一个复选框作为第一列,因此我想将其从数组中删除。这是代码。
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的值作为拼接数组返回。这可能是完全愚蠢的,但是我在这里想念的是什么?
最佳答案
方法getGridParam
返回jqGrid使用的内部参数的引用。如果使用数组或对象(例如colNames
或colNames
),则应格外小心。您需要根据自己的需要修改数组,但是您不想更改jqGrid中的值,您应该首先复制数组,然后修改副本:
var columnTitles = $(table).jqGrid("getGridParam", "colNames").slice();
columnTitles.splice(0,1);
我用
slice
制作了jqGrid使用的内部colNames
的副本。关于javascript - jqGrid('getGridParam','colNames')异常行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25558700/