2

jQuery我在-表中有两个隐藏列,BootGrid我不想显示它,但我想在搜索器中通过这两列进行搜索。我该怎么做?我试图添加data-visible="false" data-searchable="true" data-identifier="true",但这不起作用。

4

1 回答 1

1

Bootgrid 目前的工作方式(版本1.3.1),它只搜索可见列,在这里查看它们的源代码:

jquery.bootgrid.js

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)
    {
        return true;
    }
}

在我看来这很奇怪。我认为他们应该默认设置一个在隐藏时不可搜索的列,但如果开发人员明确将其设置为可搜索,它应该是(即使对于隐藏列)。

解决此问题的一种选择是将其更改为:

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

这将使隐藏的列被搜索。如果您有任何其他您真的不想被搜索的隐藏字段,现在您必须显式设置searchable为 false(通过 html 数据属性或 jquery)。

此外,如果你想使用缩小版,你应该自己缩小它,因为现有的不会有这些变化。此外,如果您或您团队中的某个人决定再次下载该库(例如出于更新或其他原因),请务必小心。


作为奖励,您可能会注意到,当您通过该方法加载值时,我还插入了一个&& row[column.id]以避免异常。nullappend

于 2017-02-23T11:32:10.160 回答