R光泽仪表板数据表列宽

时间:2019-03-14 14:46:56

标签: javascript r shiny shinydashboard dt

我正在构建一个Shiny仪表板,并且该仪表板上的一个面板是DataTable。

下面是我的代码:

  output$table = DT::renderDataTable(b1, selection = 'single')

现在使用列名的宽度调整数据表中的列宽。但是,某些单元格值是文本,并且这些文本比列名长,因此这些文本被压缩成多行显示。

我想知道是否有一种方法可以调整列宽以适合一行中的单元格值。

或者,是否有办法为列设置固定宽度并通过将鼠标悬停来获取单元格值的全部内容?

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用ellipsis插件来限制单元格的可见字符数量,并在工具提示中包含单元格的全部内容。

library(DT) 

dat <- data.frame(
  A = c("fnufnufroufrcnoonfrncacfnouafc", "fanunfrpn frnpncfrurnucfrnupfenc"),
  B = c("DZDOPCDNAL DKODKPODPOKKPODZKPO", "AZERTYUIOPQSDFGHJKLMWXCVBN")
)

datatable(
  dat, 
  plugins = "ellipsis",
  options = list(
    # limit cells in columns 1 and 2 to 17 characters
    columnDefs = list(list(
      targets = c(1,2),
      render = JS("$.fn.dataTable.render.ellipsis( 17, false )")
    ))
  )
)

enter image description here