1

我正在从 ajax 回调中将数据附加到表中。

// ajax
...
success: function(data) {
 $("#some-table").bootgrid("append", data.rows);
},
..

除了搜索之外,它按预期工作。

搜索适用于单个字母,但随后会在其他字符上引发此错误,使其无法使用。

Uncaught TypeError: Cannot read property 'search' of null

它来自lib中的这个函数

function loadData()
    {
        var that = this;

        this.element._bgBusyAria(true).trigger("load" + namespace);
        showLoading.call(this);

        function containsPhrase(row)
        {
            var column,
                searchPattern = new RegExp(that.searchPhrase, (that.options.caseSensitive) ? "g" : "gi");

            for (var i = 0; i < that.columns.length; i++)
            {
                column = that.columns[i];
                if (column.searchable && column.visible &&
                    column.converter.to(row[column.id]).search(searchPattern) > -1) // this is where it breaks
                {
                    return true;
                }
            }

            return false;
        }
4

1 回答 1

0

如果您遇到此类问题,您可以在 bootgrid.xml 中设置搜索属性。

例如 :

searchSettings: { delay: 250, characters: 30(just increase the character) }

现在您可以搜索,但您已经输入了关键字。就像玩脚本内存一样。但这是一种最简单的方法。

于 2015-08-17T09:51:37.827 回答