使用 Handsontable 过滤单个列?
Individual column filtering with Handsontable?
我正在寻找的是 Handsontable 电子表格插件的单个列搜索功能(与这个 datatables 电子表格示例完全一样)。
Handsontable 团队已经开发的内容是:
- 多重过滤 Excel- 类似(但包含在 PRO 版本中)- 我的情况的缺点是它不是免费的,而且不太适合我正在寻找。
- 根据用户输入突出显示单元格或行-缺点是我只需要显示相关行
是否有 显示 仅基于来自 Handsontable 用户的多个输入的相关行?
基于这个blog的解决方案,我设法编写了一个解决方案。
See this JS fiddle that answers all my requirements.
我一直在寻找的主要功能是这个:
// The function push every row satisfying all the input values into an array that is loaded
function filter() {
var row, r_len, col, c_len;
var data = myData; // Keeping the integrity of the original data
var array = [];
var match = true;
for (row = 0, r_len = data.length; row < r_len; row++) {
for(col = 0, c_len = searchFields.length; col < c_len; col++) {
if(('' + data[row][col]).toLowerCase().indexOf(searchFields[col]) > -1);
else match=false;
}
if(match) array.push(data[row]);
match = true;
}
hot.loadData(array);
}
我所做的是将 table 个字符串与输入字段 (searchFields) 保持同步,比较输入及其对应列之间每一行的数据,并将相关行推入数组以最终显示结果数组。输入字段中的任何更改都会调用此函数,从而导致 live table 过滤。
请注意,我针对 ~10k 行尝试了我的解决方案,它们在 Chrome、Firefox 和 IE 上没有任何性能问题。
另请注意,在编辑值时,我设法找到了使当前显示table与原始数据保持同步的解决方案,但是这是海事组织不在这个问题的范围内。如果您对此感兴趣,请在评论中告诉我。
我正在寻找的是 Handsontable 电子表格插件的单个列搜索功能(与这个 datatables 电子表格示例完全一样)。
Handsontable 团队已经开发的内容是:
- 多重过滤 Excel- 类似(但包含在 PRO 版本中)- 我的情况的缺点是它不是免费的,而且不太适合我正在寻找。
- 根据用户输入突出显示单元格或行-缺点是我只需要显示相关行
是否有 显示 仅基于来自 Handsontable 用户的多个输入的相关行?
基于这个blog的解决方案,我设法编写了一个解决方案。
See this JS fiddle that answers all my requirements.
我一直在寻找的主要功能是这个:
// The function push every row satisfying all the input values into an array that is loaded
function filter() {
var row, r_len, col, c_len;
var data = myData; // Keeping the integrity of the original data
var array = [];
var match = true;
for (row = 0, r_len = data.length; row < r_len; row++) {
for(col = 0, c_len = searchFields.length; col < c_len; col++) {
if(('' + data[row][col]).toLowerCase().indexOf(searchFields[col]) > -1);
else match=false;
}
if(match) array.push(data[row]);
match = true;
}
hot.loadData(array);
}
我所做的是将 table 个字符串与输入字段 (searchFields) 保持同步,比较输入及其对应列之间每一行的数据,并将相关行推入数组以最终显示结果数组。输入字段中的任何更改都会调用此函数,从而导致 live table 过滤。
请注意,我针对 ~10k 行尝试了我的解决方案,它们在 Chrome、Firefox 和 IE 上没有任何性能问题。
另请注意,在编辑值时,我设法找到了使当前显示table与原始数据保持同步的解决方案,但是这是海事组织不在这个问题的范围内。如果您对此感兴趣,请在评论中告诉我。