繁体   English   中英

我无法在R Shiny中设置数据表的列宽

[英]I am failing to set datatable column width in R Shiny

我试图在数据表中显示我的项目数据,但是某些项目的描述字段中有一些很长的字符串,因此整个数据表的范围变得越来越宽。 我想以某种方式缩小整个范围,但是似乎没有任何效果。 我已经尝试使用此:

div(DT::dataTableOutput("tableoutput"), style = "font_size: 75%; width: 75%")

并尝试在主面板中添加width = "XXXpx" ,但是表格仍然太宽。 我想知道是否有办法包裹长字符串或设置列宽?

这是给我带来麻烦的代码:UI

mainPanel(
      verbatimTextOutput("textoutput"),
      div(DT::dataTableOutput("tableoutput"), style = "font_size: 75%; width: 75%")

    )

服务器

server <- function(input, output, session) {
 observeEvent(input$selectinput, {
 selected_mod <- as.numeric(str_extract(input$selectinput, "(?<=\\]\\[)(\\d+)"))
    temp <- rvalues$fields[rvalues$fields$mod_id == selected_mod,]
    temp$mod_id = NULL
    temp <- temp[, basic_score:=as.numeric(basic_score)]
    temp$condition <- ifelse(as.numeric(temp$basic_score != 0), 1, 0)
    output$tableoutput <- DT::renderDataTable(
      DT::datatable(temp, options = list(paging = FALSE,
                                         searching = FALSE,
                                         columnDefs = list(
                                           list(targets = 6,visible = FALSE)
                                           )))
      %>% formatStyle(
        'basic_score', 'condition',
        backgroundColor = styleEqual(c(0, 1), c('red', 'green'))
      )
})
}

您可以在option=包含几个参数来设置宽度和进行其他更改。

例如,以下代码排除第6列,并将mtcar的第1列和第3列的宽​​度设置为50 px

     DT::datatable(mtcars, options = list(
      autoWidth = TRUE,
      columnDefs = list(list(targets = 6,visible = FALSE),
         list(width = '50px', targets = c(1, 3)))
    ))

有关更多详细信息,请参见https://rstudio.github.io/DT/options.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM