我在jqgrid中实现了过滤功能。逻辑就像迭代网格数据,然后找到过滤器的唯一值。通过选择过滤器中存在的值,我们可以应用过滤器。但是列中存在的一个字符串是两次,它们完全相同。对于例如第1行:“ABC”,第2行:“ABC”,第3行:“DEF”,第4行:“DEF”,第5行:“FEG”过滤器中的值应为ALL,ABC,DEF,FEG但是我我得到了ALL,ABC,ABC,DEF,FEG。 DEF不重复。所以它是字符串或其他东西的问题。代码是
getUniqueNames = function(columnName) {
var data = $("#grid0").jqGrid('getGridParam', 'data');
var uniqueTexts = [], text, textsMap = {}, i;
for (i = 0; i < data.length; i++) {
text=data[i][columnName];
if (text !== undefined && textsMap[text] === undefined) {
// to test whether the texts is unique we place it in the map.
textsMap[text] = true;
if (typeof text =="string" && text.trim()!=''){
uniqueTexts.push(text);
}
}
}
// Object.keys(textsMap); Does not work with IE8:
return uniqueTexts;
}