Handsontable使用时,不完全呈现Chrome浏览器内置的搜索功能(Handsontable

2019-10-23 19:38发布

奇怪的,不一致的问题,我正在使用Chrome内置的搜索功能时进入。 我有一些数据250线的handsontable呈现,不是可以在屏幕上显示而无需滚动或缩小更多。

http://jsfiddle.net/hU6Kz/3723/

var myData = [
    ["", "Kia", "Nissan", "Toyota", "Honda"],
    ["lots of data begins here"],
             ];

$("#exampleGrid").handsontable({
    data: myData,
    startRows: 5,
    startCols: 5,
    minSpareCols: 1,
    minSpareRows: 1,
    rowHeaders: true,
    colHeaders: true,
    contextMenu: true
});

注意,当你第一次拉起的页面,您可以向下滚动,所有的数据在handsontable呈现。

现在打控制+ F拉上了Chrome浏览器内置的搜索功能。 搜索在handsontable任何字符。 许多在handsontable数据不再呈现! 偶尔的数据将再次得到渲染,如果我寻找别的东西,但似乎不一致,我无法找到一个共同的原因..

这似乎并没有在Firefox中的一个问题,但我的公司是决然在Chrome阵营。 帮帮我,邻互联网的向导。

Answer 1:

这是因为Handsontable采用了一种名为“虚拟渲染”奇术只呈现当前行你正在寻找加几个。 这使得它可以显示“无限”多行。 这个问题ctrl+f是它搜索HTML文本,因此您将无法使用该搜索。

这就是为什么有可用的搜索插件,它返回给你所有匹配小区的名单。 从那里,你可以这样做对很多事情进入, scrollTo下一个可用的匹配单元(搜索)。 另一个非常著名的应用是通过用较少的数据(过滤器)重新创建表过滤行。



Answer 2:

这里有使用handsontable的搜索功能工作演示。

在搜索输入写测试 ,然后按Enter键

这是该方法做什么上述我。

var searchField = document.getElementById('search_field');

Handsontable.Dom.addEvent(searchField, 'keyup', function (event) {
  if (event.keyCode == 13) {
    var queryResult = hot.search.query(this.value);
    hot.selectCell(queryResult[0].row, queryResult[0].col);
  }
});

http://jsfiddle.net/pdivasto/hp8ge8kk/



文章来源: Handsontable is not fully rendered when using Chrome's built in search function