我正在根据http://docs.handsontable.com/0.15.0-beta6/demo-search-for-values.html的内置搜索功能,使用handontable复制一个实时过滤器框。
现在我正在使用文档中最简单的用例(http://jsfiddle.net/kc11/uL3L4teL/)。
如文档中所述,在此代码中,如果输入搜索字符串,则使用以下函数获取输出到控制台的匹配单元格:
Handsontable.Dom.addEvent(searchFiled, 'keyup', function (event) {
var queryResult = hot.search.query(this.value);
console.log(queryResult);
hot.render();
我对此进行了修改:
function getRowsFromObjects(queryResult) {
rows = [];
for (var i = 0, l = queryResult.length; i < l; i++) {
debugger
rows.push(queryResult[i].row);
}
console.log('rows',rows);
return rows;
}
Handsontable.Dom.addEvent(searchFiled, 'keyup', function (event) {
var queryResult = hot.search.query(this.value);
console.log(queryResult);
rows = getRowsFromObjects(queryResult);
hot.render();
});
http://jsfiddle.net/kc11/uL3L4teL/1/
这样做的原因是获取匹配的单元格的行号。 我的计划是抓取相关的数据行并重新渲染表格。但变量'data'(最好在小提琴中看到)似乎在Handsontable.Dom.addEvent(searchFiled,'keyup',function(event)函数)中不可用。如何在功能中提供对此功能的访问?