tables extensions examples example entries dtoptions buttons r datatables scrollbar shiny horizontal-scrolling

extensions - render dt r



Cómo hacer visible la barra de desplazamiento horizontal en DT:: datatable (3)

No creo que puedas (o debas) forzar una barra de desplazamiento fácilmente si no la necesitas, pero el código anterior funciona bien para mí, muestra una barra de desplazamiento cuando la página se inicializa. Tal vez el problema sea con los datos o alguna otra cosa.

Aquí hay un ejemplo mínimo que tiene una barra de desplazamiento horizontal en la carga de la página

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

Utilizando el paquete R shiny & DT, estoy creando ciertas tablas. El número de columnas varía según la entrada del usuario y no es fijo. He incluido el siguiente fragmento de código para incluir una barra de desplazamiento horizontal para que cuando el número de columnas sea grande, el usuario pueda desplazarse por las columnas que no están directamente visibles.

servidor.R:

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

Al usar el código anterior, la barra de desplazamiento horizontal no se ve al principio, pero aparece cuando hago clic en una fila y presiono la flecha derecha en mi teclado. ¿Hay alguna forma de que la barra de desplazamiento se haga visible tan pronto como se encienda la tabla, sin importar cuántas columnas tenga, y puedo arrastrar la barra de desplazamiento con el puntero del mouse?

Actualización :

Probé el código en la respuesta a continuación y esto es lo que veo: no hay barra de desplazamiento horizontal.


Prueba esto:

DT::datatable(sta, options = list( pageLength=50, scrollX=''400px''), filter = ''top'')


Yo también habría hecho esto:

datasetInput1 <- reactive({ infile <- input$file1 if(is.null(infile)) return(NULL) else m <- read.csv(infile$datapath, header = input$header) return ( DT::datatable(m, extensions = ''Scroller'', options = list(deferRender = F, dom = ''t'', columnDefs = list(list(className = ''dt-center'', targets = 5)), scrollY = 300, scroller = TRUE, scrollX = T, pageLength = 5)) ) })