R闪亮折叠数据表中的长行

时间:2018-07-10 09:39:18

标签: r datatable shiny

我有一个数据表,在某些行中有很多文本。

我想做的是将行中的默认文本显示限制为4行,然后单击该行以展开它或仅显示该特定行。

library(shiny)
library(DT)

data <- data.frame(
  question = c("question1", "question2", "guestion3", paste0("A ", paste0(rep("very", 1000), collapse = " "), "long question"), "..."),
  answer = c("answer1", "answer2", paste0("A ", paste0(rep("very", 1000), collapse = " "), "long answer"),
             paste0("Another ", paste0(rep("very", 200), collapse = " "), "long answer"), "...")
)

ui <- fluidPage(
  DT::dataTableOutput(('DTOut'))
)

server <- function(input, output) {

  output$DTOut <- DT::renderDataTable({
    data
  })
}

shinyApp(ui = ui, server = server)

我正尝试使用max-height进行切换,但是在那儿并不是很成功。

1 个答案:

答案 0 :(得分:2)

这是DT页上的解决方案。但是它会使用字符数和鼠标悬停在单元格上时显示的剩余文本。

datatable(data, options = list(columnDefs = list(list(
  targets = c(1,2),
  render = JS(
   "function(data, type, row, meta) {",
   "return type === 'display' && data.length > 100 ?",
   "'<span title=\"' + data + '\">' + data.substr(0, 100) + '...</span>' : data;",
   "}")
))))