使用带有 searchHighlight 选项的过滤器时,某些字符串会在 DT 中消失

问题描述 投票:0回答:1

使用单个列过滤器 + searchHighlight 选项时,存在与 DT 过滤相关的问题。

重现步骤:

  1. 使用此代码生成一个带有单个字符列的简单 DT 表:
library(DT)

df <- data.frame(
  test_chr = paste0('test', 1:10)
)

datatable(
  df,
  filter = "top",
  options = list(
    searchHighlight = TRUE
  )
)

изображение

  1. tst_chr
    单独的列过滤器中键入 test1изображение

  2. 通过删除搜索查询或单击清除按钮来取消搜索;

  3. 单词

    test
    几乎在所有行中都消失了。 изображение

javascript r datatables dt
1个回答
1
投票

这是一个解决方案。使用这个

callback
,这有效:

library(DT)

df <- data.frame(
  test_chr = paste0('test', 1:10)
)

datatable(
  df,
  filter = "top",
  options = list(
    searchHighlight = TRUE
  ),
  callback = JS(
    "table.on( 'draw', function() {
        var body = $( table.table().body() );
        body.unhighlight();
        body.highlight( table.search() );  
    } );
    "
  )
)
© www.soinside.com 2019 - 2024. All rights reserved.