在初始化时过滤数据表:过滤带有空列的行

时间:2021-01-28 10:39:09

标签: datatables filtering

我使用数据表并想过滤(不显示)带有空列的行 我有一个 tsimple 表,有 2 行:

  • 第一行:第四列为空->此行必须过滤(隐藏)
  • 第二列:第四列包含一个链接->这行必须显示

我尝试使用正则表达式使用 aoSearchCols 选项,但过滤了 2 行 我不明白 bEscapeRegex 在做什么,但如果我设置为 true 或者即使我删除了也不会影响结果

我已经测试了我的正则表达式,它似乎有效

此外,阅读不同的论坛和数据表文档有时是 searchCols 有时是 aosearchCol

"aoSearchCols": [ // filtre sur les lignes pour lesquelles la collone 'Actions' dispose d'un lien
                null,
                null,
                null,
                { "sSearch": "^[A-Z]", "bEscapeRegex": false }
            ]

1 个答案:

答案 0 :(得分:0)

以下 searchCols 选项应该有效:

$('#example').DataTable( {
  "searchCols": [
    null,
    null,
    null,
    {
      "regex": true,
      "search": ".+"
    }
  ]
} );

这假设您的表中正好有 4 列。

.+ 正则表达式确保第四列必须包含一些文本(一个或多个字符)。

(使用这种方法意味着用户无法取消隐藏那些最初隐藏的列。我认为没问题。)


我注意到您在选项中使用了旧式的匈牙利符号名称 - 例如,aoSearchCols 而不是 searchCols。如果您使用的是 DataTables 1.10+,我建议您更新为较新的驼峰式名称(正如我在此处使用的那样)。

此外,我无法在 list of old names 中找到 bEscapeRegex。如果该名称不存在,那么在您的示例中,这可能也会给您带来问题。

更新:

我找到了关于 bEscapeRegex 的参考 here

<块引用>

bEscapeRegex 现在已被 bRegex 取代,其含义基本相同,但它是 bEscapeRegexboolean NOT。当 bRegex 为 true 时,过滤字符串被 DataTables 视为正则表达式,当它为 false 时,字符串被视为字面意思,而不是模式。 bEscapeRegex 的任何实例都必须更新。这样做是为了提供更易于使用的过滤 API,作为更广泛整理的一部分。

此注释是升级到 1.7 版(非常旧!)的一部分。