【问题标题】:Prevent data table column width from changing size Shiny防止数据表列宽改变大小闪亮
【发布时间】:2020-07-04 11:04:24
【问题描述】:

我有一个具有正确列宽的数据表,每次单击“添加”按钮时都会更新。添加额外的行时,它会自动调整大小以适应整个主面板,尽管文本非常适合。

这是我的 REPREX:

library(shiny)
library(DT)

this_table = data.frame(bins = c(30, 50), cb = c(T, F))

ui <- fluidPage(
    
    sidebarLayout(
        sidebarPanel(
            sliderInput("bins",
                        "Number of bins:",
                        min = 1,
                        max = 50,
                        value = 30),
            checkboxInput("cb", "T/F"),
            actionButton("add_btn", "Add")
        ),
        
        mainPanel(
            DTOutput("shiny_table")
        )
    )
)

server <- function(input, output) {
    
    this_table <- reactiveVal(this_table)
    
    observeEvent(input$add_btn, {
        t = rbind(data.frame(bins = input$bins,
                             cb = input$cb), this_table())
        this_table(t)
    })
    

    output$shiny_table <- renderDT({
        datatable(this_table(),
                  rownames = FALSE,
                  options = list(
                      autoWidth = TRUE,
                      columnDefs = list(list(width = "40%", targets = "_all"), list(className = "dt-center", targets = "_all")),
                      pageLength = 23, info = FALSE, lengthMenu = 30,
                      paging = FALSE,
                      #searching = FALSE,
                      lengthChange = FALSE,
                      ordering = FALSE ))
    })
}

shinyApp(ui = ui, server = server)

如何防止这种情况发生以使列宽保持不变?

【问题讨论】:

  • div 添加到您的mainPanel 有助于:mainPanel(div(DTOutput("shiny_table"), style="width: 50%;"))
  • 确实如此!但随后侧面板和主面板之间的水平空间消失了。
  • 我建议将此问题作为DT 的问题提出。

标签: r shiny dt


【解决方案1】:

这很奇怪。添加行时,width 选项似乎消失了。您可以将DTOutput 包裹在具有给定宽度的div 元素中,并将margin: auto 设置为居中:

mainPanel(
  div(
    style = "width: 300px; margin: auto;",
    DTOutput("shiny_table")
  )
)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多