r - R闪亮折叠数据表中的长行
问题描述
我有一个数据表,其中一些行中有很多文本。
我想做的是将行中文本的默认显示限制为 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 和 toggle 进行游戏,但在那里并不是很成功。
解决方案
这是来自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;",
"}")
))))
推荐阅读
- python - bootstrap中jumbotron中的背景图像不起作用
- python - 如何避免实例和类中的“缺少参数”
- html - 如何更改 Angular 中滚动的标题部分?
- excel - 用新数据填充 Excel 表格,同时保留历史数据
- ionic-framework - 如何在 ionic 中将数据绑定到 ionClick
- audio - 用新的视频音频替换现有的视频音频并循环播放音频直到视频完成 [FFMPEG]
- python - 如何从给定的输入创建列表列表?
- fetch-api - 使用交叉获取的文件上传导致服务器上的套接字异常
- python - 如何使用 python/django 在 PDF 中添加数字签名或签名图像?
- xcode - 每当添加断点时 LLDB 就会崩溃