繁体   English   中英

jqGrid('getGridParam','colNames')异常行为

[英]jqGrid('getGridParam','colNames') odd behavior

使用此函数返回网格的列名可以正常工作。 拼接返回的数组时会出现问题。

网格包括一个复选框作为第一列,因此我想将其从数组中删除。 这是代码。

var columnTitles = $(table).getGridParam('colNames'); 
columnTitles.splice(0,1);

当我多次使用此功能时,问题就来了(将其导出为ex​​cel)。 下次我导出时,getGridParam函数实际上返回的是拼接的列名数组,而不是实际的。 好像是通过引用或其他方式传递。

进一步证明它正在执行此操作,而且我不仅对全局变量或其他问题有疑问...如果我执行以下代码:

var columnTitles = $(table).getGridParam('colNames'); 
var columnTitles2 = $(table).getGridParam('colNames'); 
columnTitles.splice(0,1); 
console.log(columnTitles2); 

columnTitles2的值作为拼接数组返回。 这可能是完全愚蠢的,但是我在这里想念的是什么?

该方法getGridParam返回由使用的jqGrid内部参数的参考 如果使用数组或对象(例如colNamescolNames ,则应格外小心。 它需要修改的数组你的目的 ,但你不想改变你的jqGrid应首先使阵列的复制值,然后修改副本:

var columnTitles = $(table).jqGrid("getGridParam", "colNames").slice(); 
columnTitles.splice(0,1);

我用slice制作了colNames使用的内部colNames的副本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM