rshinyscrollbardthorizontal-scrolling

How to make the horizontal scrollbar visible in DT::datatable


Using R shiny & DT package, I am creating certain tables. The number of columns vary as per user input & is not fixed. I have included the following code snippet to include a horizontal scrollbar so that when the number of columns is large, the user can scroll through the columns that are not directly visible.

server.R:

output$results <- DT::renderDataTable({
    DT::datatable(data = datasetInput(),
                  options = list(scrollX = TRUE,...)
                  )
  })
<code reduced for brevity>

Using the above code, the Horizontal scrollbar is not visible at first but appears when I click on a row and hit right arrow on my keyboard. Is there any way the scroll bar becomes visible as soon as the table is fired up, no matter how many columns I have, and I can drag the scrollbar using the mouse pointer?

Update:

I tried the code in the answer below and this is what I see - no horizontal scrollbar.

enter image description here


Solution

  • I don't think you can (or should) force a scrollbar easily if you don't need one, but the above code works fine for me, it shows a scrollbar when the page initializes. Maybe the problem is with the data or something else.

    Here's a minimal example that has a horizontal scrollbar on page load

    runApp(shinyApp(
      ui = fluidPage(
        DT::dataTableOutput("results", width = 300)
      ),
      server = function(input, output, session) {
        output$results <- DT::renderDataTable(
          mtcars,
          options = list(scrollX = TRUE)
        )
      }
    ))