簡體   English   中英

當使用列級搜索時,DT :: datatables()生成的html表顯示顯示異常(缺少字符)

[英]DT::datatables() generated html table shows display anomalies (missing characters) when column level search is used

我試圖將交互式,可排序的表格放在通過R腳本使用rmarkdown :: render生成的html摘要中。 為了產生表,我使用了DT包中的datatables()。 報表生成良好,表格看起來也不錯,直到您執行列級過濾器/搜索為止,然后顯示會出現一些有趣的問題。 通過以下示例,我的問題將變得更加清楚。

#' ---
#' title: "Test"
#' author: test
#' output: 
#'   html_document:
#'     toc: true
#' ---

#' <style type="text/css">
#'   .main-container {
#'     max-width: 1200px;
#'     margin-left: auto;
#'     margin-right: auto;
#'   }
#' </style>

#' ### Test data

#+ setup, include=FALSE, echo=TRUE
require(dplyr)
require(DT)
knitr::opts_chunk$set(echo = TRUE)

#+ core_code, include=FALSE, echo=TRUE 
plants <- read.csv("https://vincentarelbundock.github.io/Rdatasets/csv/cluster/plantTraits.csv")
plants<- plants %>% 
  mutate( ID = paste0("ID_" , sprintf("%04d", 1:136)  )  ) %>%
  select(ID, X:unsp)

#+ test_table, echo = FALSE
datatable( plants ,
           extensions = c("Buttons" , "FixedColumns"),
           filter = 'top',
           options = list( autoWidth = TRUE , 
                           dom = 'Blftip',
                           pageLength = 100,
                           searchHighlight = TRUE,
                           buttons = c('copy', 'csv', 'print'),
                           scrollX = TRUE,
                           fixedColumns = list(leftColumns = 2)),
           class = c('compact cell-border stripe hover') ,
           rownames = FALSE) 

生成表(屏幕截圖): 在此處輸入圖片說明

如果我在ID列中搜索048,它會顯示右行,如下所示... 在此處輸入圖片說明

但是,如果我取消過濾器,然后將所有行帶回,則ID列中的行缺少字符。 在此處輸入圖片說明

我搜索的任何列或任何其他數據都會發生這種情況。 如果使用主搜索框(位於右上角),則不會發生這種情況。 我在Mac(OS X 10.11.6)上運行RStudio(版本1.1.463),但已在Mac上的Chrome,Safari和RStudio內置瀏覽器中測試了生成的html文件; 以及Win7上的Chrome和IE。 關於如何解決這個問題的任何線索?

這並不是真正的解決方案,而是更多的規避問題。 由於沒有任何建議,因此我開始禁用所有正在使用的選項,事實證明,正是突出顯示的搜索結果導致了問題。 因此,如果我這樣做:

#+ test_table, echo = FALSE
datatable( plants ,
           extensions = c("Buttons" , "FixedColumns"),
           filter = 'top',
           options = list( autoWidth = TRUE , 
                           dom = 'Blftip',
                           pageLength = 100,
                           searchHighlight = FALSE,
                           buttons = c('copy', 'csv', 'print'),
                           scrollX = TRUE,
                           fixedColumns = list(leftColumns = 2)),
           class = c('compact cell-border stripe hover') ,
           rownames = FALSE) 

現在工作正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM